case when
程序员文章站
2022-03-29 14:27:07
1 --CASE 具有两种格式: 2 --(1)简单 CASE 函数将某个表达式与一组简单表达式进行比较以确定结果。 3 --(2)CASE 搜索函数计算一组布尔表达式以确定结果。两种格式都支持可选的 ELSE 参数。 4 5 --语法 6 --简单 CASE 函数: 7 8 --CASE inpu... ......
1 --case 具有两种格式: 2 --(1)简单 case 函数将某个表达式与一组简单表达式进行比较以确定结果。 3 --(2)case 搜索函数计算一组布尔表达式以确定结果。两种格式都支持可选的 else 参数。 4 5 --语法 6 --简单 case 函数: 7 8 --case input_expression 9 -- when when_expression then result_expression 10 -- [ ...n ] 11 -- [ 12 -- else else_result_expression 13 -- end 14 15 --case 搜索函数: 16 17 select case statusvalue 18 when '0' then (select top 1 字段名 from work) 19 when '1' then (select top 1 字段名 from notice) end 20 from commonstatusdict; 21 22 23 create table tb (id int, 24 class varchar); --class种类就只有三种,如果不固定就需要存储过程来实现 25 insert tb 26 select 1, 27 'a' 28 union all 29 select 1, 30 'a' 31 union all 32 select 1, 33 'b' 34 union all 35 select 1, 36 'c' 37 union all 38 select 2, 39 'a' 40 union all 41 select 2, 42 'b' 43 union all 44 select 2, 45 'b'; 46 select * 47 from tb; 48 49 --想查找出按id分组得到的 a ,b ,c 的数量 50 -- 如下 51 --id a b c 52 --1 2 1 1 53 --2 1 2 0 54 55 56 select id, 57 a = sum(case class 58 when 'a' then 1 59 else 0 end), 60 b = sum(case class 61 when 'b' then 1 62 else 0 end), 63 c = sum(case class 64 when 'c' then 1 65 else 0 end) 66 from tb 67 group by id;
下一篇: SEO需要了解哪些技术
推荐阅读
-
mysql报错:Deadlock found when trying to get lock; try restarting transaction的解决方法
-
关于case when语句的报错问题详解
-
Grow heap (frag case) 堆内存过大的深入解析
-
mysql存储过程之case语句用法实例详解
-
拆解报告:iPhone XS Smart Battery Case智能电池壳(A2070)
-
DOMContentLoaded vs jQuery.ready vs onload, How To Decide When Your Code Should Run
-
一次简单的Oracle恢复Case实战记录
-
Login case
-
shell脚本中case条件控制语句的一个bug分析
-
shell中case的用法学习笔记