MySQL中 CASE表达式的介绍及使用

MySQL CASE表达式

简介: 使用MySQL CASE 表达式向查询中添加if-else逻辑。

MySQL CASE 表达式介绍

MySQL case 表达式是一种控制流结构,允许你向查询条件中添加if-else逻辑。一般来说,你可以使用 case 表达式在任何地方,可以让一个有效的表达式例如 selectwhereorder by 成立。

case 表达式 有两种形式: simple caseseaerched case

简单 CASE 表达式(simple case expression)

简单CASE表达式语法

CASE value
	WHEN value1 THEN result1
	WHEN value2 THEN result2
	...
	[ELSE else_result]
END

说明
在此语法中,CASE匹配具有价值value1value2 等等,相等返回result1result2…,如果value不等任何值则返回结果else后的指定的WHERE子句。

在CASE中value与WHEN子句values 值进行了比较确定是否相等性,不能将其与NULL一起使用,因为NULL=NULL 返回false。

示例

SELECT 
    customerName, 
    orderCount,
    CASE orderCount
		WHEN 1 THEN 'One-time Customer'
        WHEN 2 THEN 'Repeated Customer'
        WHEN 3 THEN 'Frequent Customer'
        ELSE 'Loyal Customer'
	END customerType
FROM
    cte
ORDER BY customerName;

搜索 CASE (Searched CASE expression)

搜索case 表达式语法

CASE 
 	WHEN expression1 TNEN result1
	WHEN expression2 THEN result2
	...
	[ELSE else_result]
END

说明
使用这种语法,case计算WHEN子句中指定的表达式,当结果为true时但会THEN后面的而结果值,否则返回ELSE后面的结果。

示例

SELECT 
    SUM(CASE
        WHEN status = 'Shipped' THEN 1
        ELSE 0
    END) AS 'Shipped',
    SUM(CASE
        WHEN status = 'On Hold' THEN 1
        ELSE 0
    END) AS 'On Hold',
    SUM(CASE
        WHEN status = 'Disputed' THEN 1
        ELSE 0
    END) AS 'Disputed',
    COUNT(*) AS Total
FROM
    orders;
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值