Pgsql排序讓空值NULL排在數字後邊

2021-09-08 12:46:12 字數 2167 閱讀 2021

遇到一種情況,對數字進行排序的時候,出現null在數字後面的情況,現在的需求是null排在前面然後才是公升序的排數字

【oracle 結論】 

order by colum asc 時,null預設被放在最後

order by colum desc 時,null預設被放在最前

nulls first 時,強制null放在最前,不為null的按宣告順序[asc|desc]進行排序

nulls last 時,強制null放在最後,不為null的按宣告順序[asc|desc]進行排序 

【mysql 結論】

order by colum asc 時,null預設被放在最前

order by colum desc 時,null預設被放在最後

order by if(isnull(update_date),0,1) null被強制放在最前,不為null的按宣告順序[asc|desc]進行排序

order by if(isnull(update_date),1,0) null被強制放在最後,不為null的按宣告順序[asc|desc]進行排序

針對【oracle】我們就需要使用以下語法:

order by order_col [asc|desc] nulls [first|last]

而針對【mysql】我們則需要使用以下語法:

order by if(isnull(my_field),1,0),my_field;

下面在oracle11g下做個測試:

測試資料:

rownum

create_date

update_date

120-3月 -11

18-6月 -11

220-4月 -11

320-5月 -11

20-6月 -11

【無排序/預設排序】

[sql]view plain

copy

select update_date from table_name ;

leeyee 寫道

[結果]

1 18-6月 -11

2 3 20-6月 -11

【asc排序】

[sql]view plain

copy

select update_date from table_name order by update_date;

leeyee 寫道

[結果]

1 20-6月 -11

2 18-6月 -11

3【desc排序】

[sql]view plain

copy

select update_date from table_name order by update_date desc;

leeyee 寫道

[結果]

1 2 18-6月 -11

3 20-6月 -11

【asc排序,強制null放在最前】

select update_date from table_name order by update_date nulls first;

leeyee 寫道

[結果]

1 2 20-6月 -11

3 18-6月 -11

【asc排序,強制null放在最後】

select update_date from table_name order by update_date nulls last;

leeyee 寫道

[結果]

1 20-6月 -11

2 18-6月 -11

3mysql5.0測試

select update_date from table_name order by if(isnull(update_date),0,1),update_date;   

,同orcel一樣,pgsql也同樣適用。

該文**

空值NULL處理

1.空值 null 處理 查詢籍貫為null同學 如果判斷乙個欄位的的值是不是null,需要使用is關鍵字,不能使用 select from tbstudent where stuaddress isnull 查詢籍貫不是null的所有同學 select from tbstudent where s...

處理Null(空)值

如果將null設定給物件的屬性,程式會報錯。例如 如果myblog.settitle null 程式會報錯。如果引數傳了乙個空值,那麼jdbc type對於所有的jdbc允許為空的列來說是必須指定的。解決方法 在引數中指定jdbctype屬性,這個屬性只在insert,update,delete的時...

hive 空值 null判斷

hive中空值判斷基本分兩種 1 null 與 n hive在底層資料中 如何儲存和標識null,是由 alter table name set serdeproperties serialization.null.format n 引數控制的 比如 1.設定 alter table name se...