簡體   English   中英

SQL 案例-如何按另一個字段ASC排序

[英]SQL Case - how to order by another field ASC

我有一個 SQL 查詢,它將當地餐館的表格分類,但之后我想按標題的字母順序排序。 最終結果應該對類別進行排序,然后內容按標題字段的字母順序排序(如“ORDER BY 類別,標題 ASC”,只有類別按大小寫排序)。

我的查詢是

SELECT *
FROM menu
ORDER BY CASE WHEN category = 'Appetizers' THEN 1
              WHEN category = 'Entrees' THEN 2
              WHEN category = 'Desserts' THEN 3
          WHEN category = 'Beverages' THEN 4
          END

我嘗試在每一行中添加“, title ASC”,並在 END 之后添加,但出現錯誤。 這完全可以做到嗎?

它的行為與任何其他ORDER排序一樣

首先它將按CASE排序,然后按標題對具有相同類別的每個條目進行排序

SELECT *
FROM menu
ORDER BY CASE WHEN category = 'Appetizers' THEN 1
              WHEN category = 'Entrees' THEN 2
              WHEN category = 'Desserts' THEN 3
          WHEN category = 'Beverages' THEN 4
          ELSE 5
          END ASC, title ASC

只需要在ORDER BY子句中CASE表達式后面加上title 就可以了。這會根據CASE 按類別對數據進行排序,然后是每個類別組中的title。

詢問

SELECT *
FROM menu
ORDER BY CASE WHEN category = 'Appetizers' THEN 1
          WHEN category = 'Entrees' THEN 2
          WHEN category = 'Desserts' THEN 3
      WHEN category = 'Beverages' THEN 4
      END, title;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM