SQL之CASE语句
1.语法
#情况⼀:类似于switch,⼀般⽤于实现的等值判断
case变量或表达式或字段
when要判断的值then返回的值1或语句1(语句要加;)
when要判断的值then返回的值2或语句2(语句要加;)
...
else要返回的值n
end【case;】(如果是放在begin end中需要加上case,如果放在select后⾯不需要)
#情况⼆:类似于多重if,⼀般⽤于实现区间判断
case
when要判断的条件1 then返回的值1或语句1(语句要加;)
when要判断的条件2 then返回的值2或语句2(语句要加;)
...
else要返回的值n
end【case;】(如果是放在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>=90AND score<=100THEN SELECT'A';
WHEN score>=80THEN SELECT'B';
WHEN score>=60THEN SELECT'C';
增加字段的sql语句ELSE SELECT'D';
END CASE;
END$
CALL test_case(95)$

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。