我有一個簡單的案例表達式,運行在SQL服務器下面。我期待看到結果有超過12個HRS,超過25個HRS,超過45個HRS,等等。但是,我的結果只會返回超過12個HRS,少於12個HRS。請有人賜教我。在SQL中的案例表達式
謝謝, 喬
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
因爲它短路(聲明:大部分時間)。一旦它評估了第一個「真實」情況,它就會停止。因此,請嘗試改變'WHEN'的順序(當小時> 94 .....當小時> 75 ....' – Lamak