SQL – 10.流程函数

空值处理函数

ISNULL(expression,value) :如果expression不为空则返回expression,否则返回value。

1
SELECT ISNULL(FName,'佚名') as 姓名 FROM T_Employee

 

Case 函数用法

  • (1)单值判断,相当于switch case
    CASE expression
    WHEN value1 THEN returnvalue1
    WHEN value2 THEN returnvalue2
    WHEN value3 THEN returnvalue3
    ELSE defaultreturnvalue
    END

 

 

T_Customer表

image

例子

1
2
3
4
5
6
7
8
9
10
select Fname,
(
case Flevel
when 1 then '普通客户'
when 2 then '会员'
when 3 then 'vip'
else '游客'
end
) as 客户类型
from T_Customer

 

image

 

  • (2)相当于if…else…else….
    CASE
    WHEN condition1 THEN returnvalue1
    WHEN condition 2 THEN returnvalue2
    WHEN condition 3 THEN returnvalue3
    ELSE defaultreturnvalue
    END

 

 

例子:

image

image

 

 

练习1:

表中有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列。

1
  

练习2:

单号   金额
Rk1     10
Rk2     20
Rk3     -30
Rk4     -10
将上面的表输出为如下的格式:
单号   收入   支出
Rk1     10       0
Rk2     20       0
Rk3      0        30
Rk4      0        10

 

练习3:

有一张表T_Scores,记录比赛成绩
Date                 Name   Score 
2008-8-8          拜仁       胜
2008-8-9          奇才       胜
2008-8-9          湖人       胜
2008-8-10        拜仁       负
2008-8-8          拜仁       负
2008-8-12        奇才       胜
要求输出下面的格式:
Name   胜     负
拜仁   1 2
湖人   1 0
奇才   2 0
数据和参考答案见备注
注意:在中文字符串前加N,比如N’胜’

 

答案:

1.

1
2
3
select (case when a>b then a else b
end),(case when b>c then b else c end )
from t

2.

1
select ID,(case when money <0 then 0 else money end) AS 收入,(case when money >0 then 0 else abs(money) end) as 支出  from T_Bill

image

3.

1
select Name,sum(case when score ='胜' then 1 else 0 end) as '胜',
1
sum(case when score = '负' then 1 else 0 end) as '负'
1
from T_bascketball
1
group by name

 

 

image

作者:【唐】三三

出处:https://www.cnblogs.com/tangge/archive/2012/05/07/2489253.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   【唐】三三  阅读(361)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2011-05-07 一名真正的Web程序员应该懂得那些方面的知识,应该注意学习哪些东西
2011-05-07 程序员职业发展:如何作技术型领导
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
点击右上角即可分享
微信分享提示