[SQL ] 數字由大到小,但是NULL要排在更前面

作者: liu2007 (è–¯)   2022-08-20 01:53:32
資料庫名稱:SQLite
資料庫版本:SQLite 3
內容/問題描述:
我想對某一行由數字組成的字串做排序,規則是:
按照其自身數字的意義,由大到小進行排列
若內容值是NULL,則必須排在數字前面,NULL跟NULL彼此排序與否無所謂
例如有一行資料如下123,127,NULL,65,NULL,9657
我需要將他排成 NULL, NULL, 9657, 127, 123, 65
我查了一下可以在ORDER BY裡面使用CASE
但大多數的範例使用的CASE 都是在某條件下使用其他行進行排序
例如如果兩筆資料的同一行相同,則排序其他行的資料來決定順序。
另外其中一個範例是 CASE WHEN XXX = XXX THEN 1 ELSE 2 END
不太懂這麼寫的意思意義在哪.....
以上就是我的問題,望各位賜教,感謝
作者: Iories (無法克制)   2022-08-20 08:39:00
Case When [欄] is Null Then 99999999 Else [欄] End數字比實際最大值還大就可以
作者: konkonchou (卡卡貓)   2022-08-20 09:54:00
order by publishDate NULLS first
作者: tedcat (動靜:MSN暱稱為主)   2022-09-14 22:56:00
另外一個方式是在order by自建欄位order by case when field is null then 1 else 2 end asc, 然後原本欄位 desc

Links booklink

Contact Us: admin [ a t ] ucptt.com