MySQL 中case when then else end的使用

419 阅读1分钟

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 ;
    
  • 可以和一些聚合函数配合使用
  • 可以根据要求改变查询结果