Saturday, January 7, 2017

[MYSQL] 如何在 WHERE 中用類似 switch, if 的條件判斷式 (使用 CASE WHEN THEN ELSE END)

假設我們的資料表如下
name class score
Allen B 78
Bill A 85
Cindy A 77
Dennis B 74
Ellen C 81

如果我們需要把A班考80分以上、B班考75分以上的學生找出來,只要使用下列語法,就可以簡單達成囉...

SELECT name
FROM mytable
WHERE
  CASE
    WHEN class = 'A' THEN score >= 80
    WHEN class = 'B' THEN score >= 75
    ELSE FALSE END

補充說明:
最後的 ELSE FALSE END 代表如果班級不是A或B的同學,就直接被排除。

No comments:

Post a Comment