SQL中的条件语句WHEN-THEN-ELSE
本篇文章讲述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 ;
运行结果: