黑马程序员技术交流社区

标题: SQL查询中Case函数用法 [打印本页]

作者: 张振鹏    时间: 2011-11-16 09:49
标题: SQL查询中Case函数用法
听了杨老师的视频,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;
作者: 经睿    时间: 2011-11-16 11:22
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





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2