[英]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.