CASE 關鍵字 (SQL CASE Keyword)

CASE 類似於程式語言裡的 if/then/else 語句,用來作邏輯判斷。

CASE 語法 (SQL CASE Syntax)

CASE
  WHEN condition THEN result
  [WHEN···]
  [ELSE result]
END;

或是:

CASE expression
  WHEN value THEN result
  [WHEN···]
  [ELSE result]
END;

若省略了 ELSE 子句且洽無相符的條件則會返回 NULL。

CASE 關鍵字用法 (Example)

假設我們作一個問卷調查:您喜歡這個網站嗎? 1.喜歡 2.不喜歡 3.還OK

問卷結果資料表 questionnaire 如下:

NameAnswer
張一1
王二2
李三3

我們可以作以下這個 SQL 查詢:

select Name, case Answer
  when 1 then '喜歡'
  when 2 then '不喜歡'
  when 3 then '還OK'
END
FROM questionnaire;

或是:

select Name, case
  when Answer=1 then '喜歡'
  when Answer=2 then '不喜歡'
  when Answer=3 then '還OK'
END
AS Answer
FROM questionnaire;

查詢結果如下:

NameAnswer
張一喜歡
王二不喜歡
李三還OK