首頁  >  問答  >  主體

如果一列為空,如何對 SQL 結果進行排序?

我對查詢結果的排序有疑問。 我有 3 列需要排序:

ORDER BY level DESC, logo DESC, bName ASC

我想先透過 DESC 訂購最高“等級”,這很有效。

之後,我想訂購「徽標」是否為空,但不訂購我的查詢所執行的徽標內容。

最後我想按 bName ASC 訂購

所以我想要的輸出是這樣的:

1. Level-3 has logo bName a-z
2. Level-3 has no Logo bName a-z
3. Level-2 has logo bName a-z
4. Level-2 has no Logo bName a-z
5. Level-1 has logo bName a-z
6. Level-1 has no Logo bName a-z

是否可以只透過一個乾淨的查詢來完成此操作?

對應的範例輸入:

#
等級 徽標 bName
3 測試.jpg 測試名稱
2 測試名稱
1 12test.jpg 另一個測試名稱
1 3test.jpg 無名氏
2 約翰·多伊
2 渡渡鳥
3 5test.jpg 測試名稱
1 sdsd-test.jpg 測試名稱

在某些情況下,列徽標為空(例如 = '' ),但不是 NULL

P粉969666670P粉969666670178 天前327

全部回覆(1)我來回復

  • P粉745412116

    P粉7454121162024-04-05 22:01:17

    您尚未提供有關數據的資訊以及「徽標為空」的實際含義,但原則是:

    ORDER BY 
      level DESC, 
      case when logo <> '' then 1 else 2 end,
      bName ASC;

    回覆
    0
  • 取消回覆