MySQL、MSSQL 的 SQL 語法裡面,想要做 if-else 或 switch,可以怎麼做呢?
MySQL CASE:SQL 語法的 switch 和 if-else
SQL 語法想要做 switch / if-else 可以使用 CASE 來達成
SWITCH 語法
CASE colname WHEN 'condition string' THEN 'condition string match' WHEN 'condition string2' THEN 'condition string2 match' WHEN condition int THEN 'condition int match 3' ELSE 'condition not match' END
IF-ELSE 語法(不能用 ==)
CASE WHEN colname > value THEN 'bigger' WHER colname <= value2 THEN 'lost' ELSE 'tie' END
CASE 語法可以用在 SELECT、INSERT、UPDATE、DELETE,如下範例:
Switch 寫法範例
select CASE colname WHEN 'aa' THEN 'match aa' WHEN 'bb' THEN 'match bb' WHEN 10 THEN '1' WHEN 100 THEN 1000 ELSE 'ccc' END FROM table_name;
if / else 寫法範例
SELECT CASE WHEN colname > 5 THEN 'yes' WHEN colname >= 4 THEN 'no' WHEN colname <= 3 THEN 'match 3' ELSE 'not match' END FROM table_name;
UPDATE switch 寫法範例
UPDATE table_name SET colname = ( CASE colname2 WHEN 'AAA' THEN 300 ELSE 200 END ) WHERE id = 1;
- 註:
- colname2 = 'AAA', colname = 300
- colname2 != 'AAA', colname = 200