空值处理函数
ISNULL(expression,value) :如果expression不为空则返回expression,否则返回value。
SELECT ISNULL(FName,'佚名') as 姓名 FROM T_Employee
Case 函数用法
T_Customer表
例子
select Fname, ( case Flevel when 1 then '普通客户' when 2 then '会员' when 3 then 'vip' else '游客' end ) as 客户类型 from T_Customer
例子:
练习1:
表中有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列。
练习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.
select (case when a>b then a else b end),(case when b>c then b else c end ) from t
2.
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
3.
select Name,sum(case when score ='胜' then 1 else 0 end) as '胜',
sum(case when score = '负' then 1 else 0 end) as '负'
from T_bascketball
group by name