MySQL中的CASE和WHEN語句用于將條件和結果結合在一起,從而在查詢中提供更加精確的結果。
CASE語句可以用來在SQL語句中創建條件表達式,它的一般語法是:
CASE expression WHEN value_1 THEN result_1 WHEN value_2 THEN result_2 ... ELSE default_result END
這里,expression是要測試的值或表達式,value_i是用于比較的值,result_i是expression與value_i匹配時要返回的結果,default_result是當沒有任何匹配時返回的結果。
例如,假設我們有一個名為“students”的表,其中包含學生的成績信息。我們可以使用如下的CASE語句查詢成績等級:
SELECT name, 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 students;
以上SQL語句將返回每個學生的名字和他們對應的成績等級。
除了用于計算條件表達式外,CASE語句還可以用于執行比較操作,適用于復雜的邏輯計算。例如:
SELECT CASE WHEN column_1< column_2 THEN 'VALUE1' WHEN column_1 >column_3 OR column_2 >column_3 THEN 'VALUE2' WHEN column_4 IS NOT NULL THEN 'VALUE3' ELSE 'VALUE4' END AS result FROM table;
使用CASE語句進行比較操作時,我們需要針對每個測試條件(WHEN子句)定義一個結果值。如果所有測試條件都不滿足,就會返回ELSE子句定義的默認結果。
WHEN子句也可以嵌套,當一定數量的條件被滿足時,就可以返回一個更加復雜的結果。
總之,CASE和WHEN語句是MySQL中非常靈活和有用的工具,可以幫助您編寫更加高效和精準的查詢。
下一篇mysql cas