看板 Database 關於我們 聯絡資訊
資料庫名稱: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
Iories: Case When [欄] is Null Then 99999999 Else [欄] End 08/20 08:39
Iories: 數字比實際最大值還大就可以 08/20 08:40
https://imgur.com/PoDvCzh.jpg
我試了一下仍會把NULL排在最小的前面 我目前在想要不要用merge兩個selecet ※ 編輯: liu2007 (123.192.225.144 臺灣), 08/20/2022 09:43:35
konkonchou: order by publishDate NULLS first 08/20 09:54
https://imgur.com/8EF92TQ.jpg
太神啦,感謝大大 ※ 編輯: liu2007 (123.192.225.144 臺灣), 08/20/2022 10:08:09
tedcat: 另外一個方式是在order by自建欄位order by case when fi 09/14 22:56
tedcat: eld is null then 1 else 2 end asc, 然後原本欄位 desc 09/14 22:56