2015-06-01 13 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; 

Quando sto cercando di eseguire questa query sto ottenendo errore comeCaso sintassi MySQL

# 1064 - Hai un errore nella sintassi SQL; controllare il manuale che corrisponde alla versione del server MySQL per la sintassi diritto di utilizzare vicino 'QUANDO expiry_date_case IS NULL quindi 2 Desc fine quando expire_date_case < CURDATE()' at line 4


Dove sono io fare male?

+3

Se il il caso non finisce, don ' lo finisco. – Strawberry

risposta

3

Prova

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 

hai troppi End 's e troppe desc' s

1

Aggiornare la query in

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 

Rimosso che end e desc