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; 

Kiedy próbuję uruchomić tę kwerendę Dostaję błąd jakMysql Case Składnia

# 1064 - Masz błąd w składni SQL; sprawdzić podręcznika, który odpowiada twojej wersji serwera MySQL dla prawego składnię używaną pobliżu "Kiedy expiry_date_case IS NULL THEN 2 opis produktu końca, gdy expire_date_case < CURDATE() w wierszu 4


gdzie jestem robić źle?

+3

Jeśli sprawa się nie kończy, nie " t to skończyć. – Strawberry

Odpowiedz

3

Spróbuj

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 

Masz zbyt wiele End 's i zbyt wiele desc' s

1

Aktualizacja zapytanie do

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 

Usunięto że end i desc