CASE 类似于程序语言中的 if/then/else 语句,用来作逻辑判断。
CASE 语法 (SQL CASE Syntax)
CASEWHEN condition THEN result[WHEN···][ELSE result]END;
或是:
CASE expressionWHEN value THEN result[WHEN···][ELSE result]END;
若省略了 ELSE 子句且恰无相符的条件则会返回 NULL。
CASE 关键字用法 (Example)
假设我们做一个问卷调查:您喜欢这个网站吗? 1.喜欢 2.不喜欢 3.还OK
问卷结果数据表 questionnaire 如下:
| Name | Answer |
|---|---|
| 張一 | 1 |
| 王二 | 2 |
| 李三 | 3 |
我们可以运行以下 SQL 查询:
select Name, case Answerwhen 1 then '喜欢'when 2 then '不喜欢'when 3 then '还OK'ENDFROM questionnaire;
或是:
select Name, casewhen Answer=1 then '喜欢'when Answer=2 then '不喜欢'when Answer=3 then '还OK'ENDAS AnswerFROM questionnaire;
查询结果如下:
| Name | Answer |
|---|---|
| 張一 | 喜歡 |
| 王二 | 不喜歡 |
| 李三 | 還OK |
