Ich habe einen einfachen Fall Ausdruck, der in SQL-Server läuft unten. Ich hatte erwartet, dass das Ergebnis über 12 Stunden, über 25 Stunden, über 45 Stunden usw. sein wird. Jedoch gibt mein Ergebnis nur über 12 Stunden und weniger 12 Stunden. Würde mich jemand bitte aufklären?Case Expression in SQL
Danke, Joe
SELECT
STORE,
CASE
WHEN HOURS >12 THEN 'Over 12 HRS'
WHEN HOURS >25 THEN 'Over 25 HRS'
WHEN HOURS >45 THEN 'Over 45 HRS'
WHEN HOURS >55 THEN 'Over 55 HRS'
WHEN HOURS >75 THEN 'Over 75 HRS'
WHEN HOURS >94 THEN 'Over 94 HRS'
ELSE 'Less 12 HRS'
END AS HOURS,
COUNT (ID) AS PRD
FROM
(
SELECT
ID,
STORE,
HOURS
FROM TABLE A
)X
GROUP BY STORE,
CASE
WHEN HOURS >12 THEN 'Over 12 HRS'
WHEN HOURS >25 THEN 'Over 25 HRS'
WHEN HOURS >45 THEN 'Over 45 HRS'
WHEN HOURS >55 THEN 'Over 55 HRS'
WHEN HOURS >75 THEN 'Over 75 HRS'
WHEN HOURS >94 THEN 'Over 94 HRS'
ELSE 'Less 12 HRS'
END
weil es kurzschließt (Disclaimer: die meiste Zeit). Sobald es die erste "wahre" Bedingung auswertet, stoppt es. Versuchen Sie also, die Reihenfolge Ihrer WHEN's zu ändern (WANN STUNDEN> 94 ..... WANN STUNDEN> 75 .... ' – Lamak