MySQL中的CASE語句是一種非常常用的邏輯判斷語句。CASE語句將根據一個或多個表達式的值,執行一系列條件,每個條件都返回不同的結果。
下面是一個非常簡單的例子:
SELECT CASE WHEN score >= 90 THEN 'A' WHEN score >= 80 THEN 'B' WHEN score >= 70 THEN 'C' WHEN score >= 60 THEN 'D' ELSE 'F' END AS grade FROM student_scores;
在這個例子中,我們使用了CASE語句根據學生的成績計算他們的等級。如果成績大于等于90分,學生將獲得'A'等級;如果成績在80到90分之間,學生將獲得'B'等級,以此類推。
我們可以看到,在CASE語句中,我們使用了WHEN和THEN來定義每個條件和結果。當所有條件都不滿足時,我們使用ELSE關鍵字指定缺省結果。
CASE語句還可以使用簡化語法,如下所示:
SELECT grade, COUNT(*) AS count FROM ( SELECT CASE WHEN score >= 90 THEN 'A' WHEN score >= 80 THEN 'B' WHEN score >= 70 THEN 'C' WHEN score >= 60 THEN 'D' ELSE 'F' END AS grade FROM student_scores ) t GROUP BY grade;
在這個例子中,我們使用了子查詢將成績計算出來,然后在外部查詢中使用COUNT函數計算每個等級的學生人數。
總之,CASE語句是一種非常強大和靈活的邏輯判斷工具,在MySQL中使用非常方便。我們可以使用它來實現各種復雜的邏輯和邏輯分支。