在SQL的SELECT欄位中可以加入CASE WHEN...THEN...ELSE之類的關鍵字,來表示一些顯示欄位的邏輯。
下面來說明一下這些關鍵字:
首先判斷式要用CASE做起頭,接著是一到多個WHEN,可以對應到程式語言的if及else if,WHEN後面接THEN表示如果條件為真的話欄位要顯示的數值,ELSE可以對應到程式語言的else。最後所有的判斷寫完之後,就寫END來結束這隻判斷式,然後用AS指定欄位輸出的名稱。
例子:
SELECT id, student_name, date ,
CASE WHEN score < 60 THEN 'FAILED' ELSE score AS score END
FROM test_record;
這條SQL指令在查詢table之後會將未滿60分的考試紀錄數字給屏蔽起來,用FAILED字樣顯示。
例子2:
查詢會員姓名列表,一般會員有姓與名兩個欄位可以組裝成全名,但來賓客戶沒有,所以透過CASE WHEN讓沒有完整姓名的來賓客戶在查詢結果中顯示為GUEST