-> 使用类似switch-case与if-else if
-> 语法
•case [字段]
• when 表达式 then 显示数据
• when 表达式 then 显示数据
• else 显示数据
•end as 别名
-> then 后数据类型要一致
简单的例子:
1 select 2 case 3 when Sex='m' then '男' 4 when Sex='f' then '女' 5 else '中性' 6 end as 性别 7 ,* 8 from dbo.StudentTestInsert
1 select 2 case Sex 3 when 'm' then '男' 4 when 'f' then '女' 5 else '中性' 6 end as 性别 7 ,* 8 from Student 9
1 select 2 case 3 when Score >= 90 then 'A' 4 when Score >=80 then 'B' 5 when Score >=70 then 'C' 6 when Score >=60 then 'D' 7 else 'E' 8 end as Score1 9 ,case Score/10 10 when 10 then 'A' 11 when 9 then 'A' 12 when 8 then 'B' 13 when 7 then 'C' 14 when 6 then 'D' 15 else 'E' 16 end as Score2 17 from Score
1 create table Score 2 ( 3 学号 nvarchar(10), 4 课程 nvarchar(10), 5 成绩 int 6 ) 7 8 insert into Score values('0001','语文',87); 9 insert into Score values('0001','数学',79); 10 insert into Score values('0001','英语',95); 11 insert into Score values('0002','语文',69); 12 insert into Score values('0002','数学',84); 13 14 15 select 16 学号, 17 SUM(case when 课程='语文' then 成绩 else 0 end) as 语文, 18 SUM(case when 课程='数学' then 成绩 else 0 end) as 数学, 19 AVG(case when 课程='英语' then 成绩 end) as 英语 20 from 21 Score 22 group by 23 学号;
1 2 select 3 学号, 4 case when 课程='语文' then 成绩 else 0 end as 语文, 5 case when 课程='数学' then 成绩 else 0 end as 数学, 6 case when 课程='英语' then 成绩 end as 英语 7 from 8 Score
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)