MySQL CASE语句

本文介绍了MySQL中的CASE语句,它提供了类似switch和多重if的条件判断能力,使得代码更易读和高效。CASE语句分为两种形式,一种用于等值判断,一种用于区间判断。在存储过程中,可以利用CASE语句根据输入成绩显示相应等级,例如90-100为A,80-90为B,60-80为C,否则为D。通过CASE,可以将条件逻辑嵌入到其他语句中,或者作为独立的语句使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MySQL CASE语句

如何使用MySQL 中CASE语句在存储的程序中构造复杂的条件语句。

除了IF语句],MySQL提供了一个替代的条件语句CASE。 MySQL CASE语句使代码更加可读和高效。

  • 语法
情况1:类似于switch,一般用于实现等值判断。
语法:
    case 变量或表达式
    when1 then 语句1;
    when2 then 语句2;
    ...
    else 语句n;
    end 

情况2:类似于多重if语句,一般用于实现区间判断。
语法:
    case 
    when 条件1 then 语句1;
    when 条件2 then 语句2;
    ...
    else 语句n;
    end 
  • 特点

    ①可以作为表达式,嵌套在其他语句中使用。

    ② 可以放在任何地方,BEGIN END 中或BEGIN END 的外面可以作为独立的语句去使用,只能放在BEGIN END中如果WHEN中的值满足或条件成立,则执行对应的THEN后面的语句,并且结束CASE如果都不满足,则执行ELSE中的语句或值 。

  • 位置

    ①可以放在任何位置

    ②如果放在begin end 外面,作为表达式结合着其他语句使用

    ③如果放在begin end 里面,一般作为独立的语句使用

  • 案例

#案例 
#创建存储过程,根据传入的成绩,来显示等级,比如传入的成绩:90-100, 显示A,80-90,显示B,60-80,显示c,否则,显示D

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)$

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值