2015-06-01 90 views
5
SELECT * 
FROM case_study 
ORDER BY CASE WHEN expiry_date_case > CURDATE() THEN 1 END 
WHEN expiry_date_case IS NULL THEN 2 Desc END 
WHEN expire_date_case < CURDATE() THEN 3 Desc END; 

當我試圖運行此查詢我得到錯誤的Mysql的案例語法

#1064 - 你在你的SQL語法錯誤;檢查對應於你的MySQL服務器版本的手冊正確的語法使用 附近「當expiry_date_case爲null,則2說明到底什麼時候 expire_date_case < CURDATE()」第4行


我在哪裏做錯了?

+3

如果案件沒有結束,不要'結束它。 – Strawberry

回答

3

嘗試

SELECT * 
FROM case_study 
ORDER BY CASE WHEN expiry_date_case > CURDATE() THEN 1 
WHEN expiry_date_case IS NULL THEN 2 
WHEN expire_date_case < CURDATE() THEN 3 END Desc 

你有太多End的和太多的desc

1

更新您的查詢

SELECT * 
FROM case_study 
ORDER BY CASE WHEN expiry_date_case > CURDATE() THEN 1 
WHEN expiry_date_case IS NULL THEN 2 
WHEN expire_date_case < CURDATE() THEN 3 END Desc 

移除enddesc