如果一列為空,如何對 SQL 結果進行排序?
P粉969666670
P粉969666670 2024-04-05 00:39:32
0
1
319

我對查詢結果的排序有疑問。 我有 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粉969666670
P粉969666670

全部回覆(1)
P粉745412116

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

ORDER BY 
  level DESC, 
  case when logo  '' then 1 else 2 end,
  bName ASC;
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!