CASE 类似于程序语言中的 if/then/else 语句,用来作逻辑判断。

CASE 语法 (SQL CASE Syntax)

  1. CASE
  2. WHEN condition THEN result
  3. [WHEN···]
  4. [ELSE result]
  5. END;

或是:

  1. CASE expression
  2. WHEN value THEN result
  3. [WHEN···]
  4. [ELSE result]
  5. END;

若省略了 ELSE 子句且恰无相符的条件则会返回 NULL。

CASE 关键字用法 (Example)

假设我们做一个问卷调查:您喜欢这个网站吗? 1.喜欢 2.不喜欢 3.还OK
问卷结果数据表 questionnaire 如下:

Name Answer
張一 1
王二 2
李三 3

我们可以运行以下 SQL 查询:

  1. select Name, case Answer
  2. when 1 then '喜欢'
  3. when 2 then '不喜欢'
  4. when 3 then '还OK'
  5. END
  6. FROM questionnaire;

或是:

  1. select Name, case
  2. when Answer=1 then '喜欢'
  3. when Answer=2 then '不喜欢'
  4. when Answer=3 then '还OK'
  5. END
  6. AS Answer
  7. FROM questionnaire;

查询结果如下:

Name Answer
張一 喜歡
王二 不喜歡
李三 還OK