SQL之CASE語句


1.語法

#情況一:類似於switch,一般用於實現的等值判斷
case 變量或表達式或字段
when 要判斷的值 then 返回的值1或語句1(語句要加;)
when 要判斷的值 then 返回的值2或語句2(語句要加;)
...
else 要返回的值n
endcase;】(如果是放在begin end中需要加上case,如果放在select后面不需要)

#情況二:類似於多重if,一般用於實現區間判斷
case 
when 要判斷的條件1 then 返回的值1或語句1(語句要加;)
when 要判斷的條件2 then 返回的值2或語句2(語句要加;)
...
else 要返回的值n
endcase;】(如果是放在begin end中需要加上case,如果放在select后面不需要)

2.特點

  • 可以作為表達式,嵌套在其他語句中使用,可以放在任何地方,BEGIN END中或BEGIN END外面
  • 也可也作為獨立語句去使用,只能放在BEGIN END中
  • 如果WHEN中的值滿足或條件成立,則執行對應的THEN后面的語句,並且結束CASE,如果都不滿足,則執行ELSE中的語句或值
  • ELSE可以省略,如果ELSE省略了,並且所有WHEN條件都不滿足,則返回NULL

3.案例

#1.創建存儲過程,根據傳入的成績,來顯示等級,比如傳入的成績:90-100,顯示A。80-90,顯示B。60-80,顯示C,否則顯示D
DELIMITER $ 
CREATE PROCEDURE test_case (IN score INT)
BEGIN
    CASE
    WHEN score>=90 AND score<=100 THEN SELECT 'A';
    WHEN score>=80 THEN SELECT 'B';
    WHEN score>=60 THEN SELECT 'C';
    ELSE SELECT 'D';
    END CASE;
END$

CALL test_case(95)$

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM