查询结果时,当某列的值为某个关键词时,需要把结果显示成固定结果或更换显示结果,在写SQL语句时,可以用 case when then 进行处理,其逻辑等同于 if… else… 的原理。
关键词: case when ... then ... end ...
或者 case when ... then ..esle... end ...
格式说明:
case when 判断条件1 then 显示的结果
when 判断条件2 then 显示的结果
else 显示的结果 // 除去上面的条件之外的显示
end AS 显示字段名
示例:
业务要求:A表中的成绩等级字段 F_Grade 有A,B,C,D,E这几种结果,现要求查询显示的结果显示分别对应:优秀,良好,合格,不合格 的文本显示,故需要进行语句处理, 查询语句如下
select ID,
case when F_Grade ='A' when '优秀'
when F_Grade ='B' when '良好'
when F_Grade ='C' when '合格'
when F_Grade ='D' when '不合格'
else F_Grade #// 当有多个结果显示成该字段本身时,可以直接用else,若上方的when 已经把结果都显示全了,则可以不用加 else
end AS F_Grade #//也可以显示成别名,例如 as AAA 等
from tableA
最终,查询出来的结果显示的是指定的文本,而不是字母 A之类的了。
when 的条件并不限制只能是一个,可以写成多个,字段多个等,例如
when F_Grade='A' and 字段B='是' then '优秀'
then 的结果也可以是显示成某个字段的结果,例如
when F_Grade='A' then 字段C