SQL 排序小技巧

SQL 排序小技巧

在跟佛心客戶工作期間,有個需求要做排序,不過因為資料內含有NULL,而且同資料又相同,不知怎麼排比較好。

原來資料長相如下:

SQL排序小技巧1

使用"SELECT * FROM TESTA" 後搜尋出來的資料排序如下~~

SQL排序小技巧2

此時客戶說:「希望NULL那些資料能排在最上面」..大胖就想那ORDER BY NAME來試試看嚕!!

使用"SELECT * FROM TESTA ORDER BY NAME" 結果如下~~

SQL排序小技巧3

大胖很高興跟客戶說你要的資料排序好嚕!!! ( 佛心客戶說:「那麻煩你把ID也照順序排吧‧」)

大胖心想應該使用"SELECT * FROM TESTA ORDER BY NAME,ID"…結果如下~~

SQL排序小技巧4

"瞪楞"怎麼NAME有值的,它的ID不能照數字來排序呢???應該要ID排序要4123才對啊!!

只聽佛心客戶說:「請讓專業的來吧!!」

TSQL 語法如下:


ORDER BY (CASE WHEN NAME IS NULL THEN 0 ELSE 1 END) ,ID 

搜尋結果如下 :

SQL排序小技巧5

以前都知道可以在SELECT語句內使用 CASE WHEN,但很少看到在ORDER BY底下使用,算是客戶給的良好經驗^______^