A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张振鹏 黑马帝   /  2011-11-16 09:49  /  2366 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

听了杨老师的视频,case expression实现离散值判断,但case后面的列参数什么情况下该加参数,什么情况下不加参数呢?有点小糊涂,求解!!!在此谢过了
例如:
(1)
select (
case
when a>b then a
else b
end
),
case
when b>c then b
else c
end
)
from t

(2)
select Name,
sum((case score
when N'胜' then 1
else 0
end)) as 胜,
sum((case score
when N'负'then 1
else 0
end)) as 负,
from t_Scores
Group by Name;

评分

参与人数 1技术分 +1 收起 理由
陈涛 + 1

查看全部评分

1 个回复

倒序浏览
经睿 黑马帝 2011-11-16 11:22:16
沙发
CASE函数用法一:case关键字后跟列名,则when后传这个列的离散值。如:


SELECT FName,

(

CASE FLevel

WHEN 1 THEN '普通客户'

WHEN 2 THEN '会员'

WHEN 3 THEN 'VIP'

ELSE '未知客户'

) AS '客户类型'

FROM T_Customer

用法二,如case关键字后什么都不跟,则when后跟一个返回布尔值的表达式,如

SELECT FName,

(

CASE

WHEN FSalary<2000 THEN '低收入'

WHEN FSalary>=2000 AND FSalary<5000 THEN '中等收入'

ELSE '高收入'

) AS 收入水平

FROM T_Employee

评分

参与人数 1技术分 +1 收起 理由
陈涛 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马