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

看板Database (資料庫)作者 (薯)時間1年前 (2022/08/20 01:53), 1年前編輯推噓0(005)
留言5則, 3人參與, 1年前最新討論串1/1
資料庫名稱: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 不太懂這麼寫的意思意義在哪..... 以上就是我的問題,望各位賜教,感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.192.225.144 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Database/M.1660931615.A.01E.html

08/20 08:39, 1年前 , 1F
Case When [欄] is Null Then 99999999 Else [欄] End
08/20 08:39, 1F

08/20 08:40, 1年前 , 2F
數字比實際最大值還大就可以
08/20 08:40, 2F
https://imgur.com/PoDvCzh.jpg
我試了一下仍會把NULL排在最小的前面 我目前在想要不要用merge兩個selecet ※ 編輯: liu2007 (123.192.225.144 臺灣), 08/20/2022 09:43:35

08/20 09:54, 1年前 , 3F
order by publishDate NULLS first
08/20 09:54, 3F
https://imgur.com/8EF92TQ.jpg
太神啦,感謝大大 ※ 編輯: liu2007 (123.192.225.144 臺灣), 08/20/2022 10:08:09

09/14 22:56, 1年前 , 4F
另外一個方式是在order by自建欄位order by case when fi
09/14 22:56, 4F

09/14 22:56, 1年前 , 5F
eld is null then 1 else 2 end asc, 然後原本欄位 desc
09/14 22:56, 5F
文章代碼(AID): #1Y_yuV0U (Database)
文章代碼(AID): #1Y_yuV0U (Database)