關於CASE WHEN ... THEN ... END的SQL使用例子

本文介绍了一个复杂的SQL查询案例,该查询用于从销售和客户付款相关的表中筛选特定条件的数据,并进行聚合计算。通过CASE WHEN语句动态计算付款日期,同时对数量和金额进行求和。

 

 

`CASE ... WHEN ... THEN ... END` 是 SQL 中强大的条件表达式,为查询过程提供了灵活的条件判断和结果返回方式[^1]。该语法有两种形式:简单 `CASE` 表达式和搜索 `CASE` 表达式。 ### 简单 `CASE` 表达式 简单 `CASE` 表达式用于将一个表达式与一组简单的表达式进行比较以确定结果。其语法如下: ```sql CASE expression WHEN value1 THEN result1 WHEN value2 THEN result2 ... ELSE default_result END ``` - `expression` 是要进行比较的表达式。 - `value1`, `value2`, ... 是要与 `expression` 进行比较的值。 - `result1`, `result2`, ... 是当 `expression` 等于对应值时返回的结果。 - `default_result` 是当 `expression` 不等于任何指定值时返回的默认结果。 示例: ```sql SELECT SCORE, CASE SCORE WHEN 'A' THEN '优' WHEN 'B' THEN '良' WHEN 'C' THEN '中' ELSE '不及格' END AS 成绩等级 FROM your_table; ``` 上述示例将 `SCORE` 列的值与 `'A'`、`'B'`、`'C'` 进行比较,并根据比较结果返回相应的成绩等级[^2]。 ### 搜索 `CASE` 表达式 搜索 `CASE` 表达式用于计算一组布尔表达式以确定结果。其语法如下: ```sql CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ... ELSE default_result END ``` - `condition1`, `condition2`, ... 是布尔表达式。 - `result1`, `result2`, ... 是当对应布尔表达式为 `TRUE` 时返回的结果。 - `default_result` 是当所有布尔表达式都为 `FALSE` 时返回的默认结果。 示例: ```sql SELECT continent, name, CASE WHEN population > 200000000 THEN '人口大国' ELSE '小国' END AS 人口规模 FROM world WHERE continent IN ('Asia', 'Africa') AND area > 2000000 ORDER BY continent; ``` 上述示例根据 `population` 的值判断国家是否为人口大国,并返回相应的人口规模[^3]。 ### 总结 - 简单 `CASE` 表达式适用于将一个表达式与一组简单的值进行比较的场景。 - 搜索 `CASE` 表达式适用于需要根据多个布尔表达式进行判断的场景。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值