MySQL CASE语句

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

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQLCASE语句是一种流程控制函数,类似于Java语言中的switch结构。它允许在SQL查询中执行IF ELSE逻辑,以检查条件语句并从数据库表中获取所需的结果集或值。\[1\] CASE语句的语法如下: CASE WHEN cond1 THEN value1 WHEN cond2 THEN value2 ... ELSE value END 其中,cond1、cond2等是条件,value1、value2等是对应条件满足时要返回的值或语句。当满足某个条件时,CASE语句会返回对应的值或执行对应的语句。如果所有条件都不满足,且没有ELSE部分或值,CASE语句会返回null。\[2\]\[3\] 总结来说,MySQLCASE语句可以用来处理条件集并使用if-else返回匹配案例的方式。它是一种在MySQL中用于控制语句的功能。\[3\] #### 引用[.reference_title] - *1* [【大数据系列之MySQL】(十九):MySQLcase语句使用方法](https://blog.csdn.net/m0_47256162/article/details/128356860)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [MySQL中的case的用法](https://blog.csdn.net/c_hanhan/article/details/126616974)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值