MySQL 中case when then else end的使用
在我们工作中经常会有一些报表,统计数据的一些接口需要对返回结果进行一下格式化的处理 case 函数就可以很好的帮我们做到
# 写法1:简单case 局限性大
CASE sex
WHEN '1' THEN '男'
WHEN '2' THEN '女'
ELSE '其他' END
# 写法2:搜索case 比较灵活,功能强大
CASE
WHEN sex = '1' THEN '男'
WHEN sex = '2' THEN '女'
ELSE '其他' END
用法:(妙用无穷)
- 通过指定值,进行分组
- check 函数中使用
- 可以在里边放查询语句
select case when lock_purpost in(SELECT id from data_dictionary) then (SELECT name from data_dictionary where id=lock_purpost) else lock_purpost end as lock_purpost, case when lock_framework in(SELECT id from data_dictionary) then (SELECT name from data_dictionary where id=lock_framework) else lock_framework end as lock_framework from v_photosum_attach ; - 可以和一些聚合函数配合使用
- 可以根据要求改变查询结果