文章目录
- 流程控制函数
- 流程控制函数的介绍
- 流程函数的使用
流程控制函数
流程控制函数的介绍
-
if(value,value1,value2)
解释:如果value的结果为true ,返回value1,否则返回value2
例如:select if(1>0,'正确','错误') ->正确
-
ifnull(value1,value2)
解释:如果value为空,返回value2,否则返回value1
例如:select(null,'hellow') ->hellow
-
case when 条件1 then 结果1 when 条件2 then 结果2 else 结果3 end
解释:相当于if else if else
例如,根据成绩grade字段判断是否良好select case when grade >90 then '优秀' when grad>60and grad <=90 then ‘良好’ else '不及格' end
-
case expr when 常量值1 then 值1 when 常量值2 then 值2 else 值3
end
解释:相当于switch
例如,字段sex,存放的值 ,1为男 ,2 是 女,其他未知select case sex when 1 then '男' when 2 then '女' else '其他' end
流程函数的使用
case when这些是流程控制函数,和其他函数一样 可以放在select后,也可放在where 后
- 放在select 后,是对查询的字段进行处理(主要是判断),liru
select case 字段 when .... then .... end
- 放在 where 后,是对条件的处理,例如,查询订单类型为1的金额大于100,和订单类型为2的金额大于80
select * from 表名 where
(case 订单类型字段 when 1 then 100 when 2 then 80 ) <= salary
- 常用使用是判断字段是否为空,例如
select if(字段 is null,'字段为空',‘字段不为空’)
- isnull()函数,isnull(字段), 字段为空返回1,为空返回0