MySQL中的函數case when可以在查詢語句中根據條件返回不同的值,該函數的語法如下:
CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ... ELSE default_result END
其中condition1、condition2等為不同的條件表達式,result1、result2等為條件表達式成立時返回的值,default_result為所有條件均不成立時返回的默認值。
下面以一個實例來說明case when的使用:
SELECT name, CASE WHEN score >= 90 THEN 'A' WHEN score >= 80 THEN 'B' WHEN score >= 70 THEN 'C' WHEN score >= 60 THEN 'D' ELSE 'E' END AS grade FROM student;
以上語句將查詢學生表中每個學生的姓名和對應的成績等級,當成績超過90分時為'A',超過80分時為'B',超過70分時為'C',超過60分時為'D',其余情況返回'E'。
需要注意的是,雖然case when可以嵌套多層,但過度使用會使查詢語句變得復雜并影響性能,因此應盡量避免多層嵌套。