SQL中的条件语句WHEN-THEN-ELSE

本文详细介绍了SQL中的CASE表达式和DECODE函数的应用场景和语法,通过具体实例展示了如何使用CASE进行范围条件查询以及如何利用DECODE进行多值等值查询。

本篇文章讲述SQL条件语句WHEN-THEN-ELSE语句,以供参考,如有错误或不当之处还望大神们告知。
注意:在mysql中对应判断表达式的语句是WHEN-THEN-ELSE语句,本篇文章将介绍的是范围条件查询(WHEN-THEN-ELSE语句)和多值等值查询(DECODE语句)。

数据说明

####用户表T_USER结构如下:
字段 | 类型 | 长度 | 主键 | 为空
-|
id | number | 6 | 是 | 否
姓名 | char | 20 | 否 | 是
年龄 | number | 2 | 否 | 是
性别 | char | 2 | 否 | 是
日期 | date | - | 否 | 是
分数 | float | - | 否 | 是

####初始数据
这里写图片描述

CASE表达方式

CASE表达式适合范围查找

  • 计算T_USER中的成绩 t_score 如果 >= 85 显示‘优秀’ ; score>=60 且 score<85 显示‘及格’;score<60 则显示‘不及格’ 。
select u_id , u_name , u_score ,case when u_score >= 65.45 then '优秀'
                                     when u_score >=60 and u_score<85 then '及格'
                                     when u_score <60 then '不及格'
                                     else '数据错误'
end 
from T_USER ;

计算结果:
这里写图片描述

#DECODE函数

DECODE函数适合多值等值查询。

  • 查询T_USER中的成绩 t_score 中成绩为65.45,95.24,73.24的记录显示为‘查’否则显示不查。
select u_id , u_name , u_score , decode(u_score,
       65.45, '查',
       95.24, '查',
       73.24, '查',
  '不查'
) 
from T_USER ;

运行结果:
这里写图片描述

SQL语句中,CASE WHEN THEN ELSE是一种条件语句,用于根据指定的条件执行不同的操作。在一般的SELECT语句中,CASE WHEN THEN ELSE的语法如下: SELECT 列名, CASE WHEN 条件1 THEN 结果1 WHEN 条件2 THEN 结果2 ELSE 结果3 END 在上面的代码中,需要根据实际情况替换列名、条件和结果。这种语句可以根据条件的不同返回不同的结果。如果条件1满足,则返回结果1;如果条件2满足,则返回结果2;如果条件都不满足,则返回结果3。这种语句可以用于各种场景,例如根据不同的条件对数据进行分类或者进行计算。 另外,CASE语句还有两种格式:简单CASE函数和CASE搜索函数。简单CASE函数的语法如下: CASE 列名 WHEN 值1 THEN 结果1 WHEN 值2 THEN 结果2 ELSE 结果3 END 简单CASE函数根据列名的值进行判断,当值等于值1时返回结果1,当值等于值2时返回结果2,否则返回结果3。 而CASE搜索函数的语法如下: CASE WHEN 条件1 THEN 结果1 WHEN 条件2 THEN 结果2 ELSE 结果3 END CASE搜索函数根据条件进行判断,当条件1满足时返回结果1,当条件2满足时返回结果2,否则返回结果3。 综上所述,SQL语句中的CASE WHEN THEN ELSE可以根据条件返回不同的结果,可以用于分类、计算等场景。根据具体的需求和数据情况选择合适的语法格式来编写SQL语句。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值