T-SQL复习12--CASE表达式

CASE简单表达式

CASE简单表达式仅用于同行检查,将第一个表达式与每个WHEN子句中的表达式进行等同行检查,以确定它们是否等效

示例:

1
2
3
4
5
6
SELECT NAME,AGE,
(CASE SEX
WHEN '男' THEN '是'
ELSE '否'
END) AS 是否男性
FROM dbo.STUDENT

CASE搜索表达式

CASE搜索表达式按照指定顺序对每个WHEN子句的布尔表达式进行计算

示例:

1
2
3
4
5
6
7
8
SELECT NAME,SEX,
(
CASE --注意这里CASE后面没带字段名称
WHEN AGE > '18' THEN '成年'
ELSE '未成年'
END
) AS 是否成年
FROM dbo.STUDENT

在ORDER BY、GROUP BY中使用CASE表达式

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
SELECT 
(
CASE
WHEN AGE>18 THEN '已成年'
ELSE '未成年'
END
) AS 是否成年,COUNT(ID) AS 人数
FROM dbo.STUDENT
GROUP BY
(
CASE
WHEN AGE>18 THEN '已成年'
ELSE '未成年'
END
)
ORDER BY 是否成年

在UPDATE中使用CASE表达式

示例:

1
2
3
4
5
6
7
8
9
UPDATE dbo.STUDENT SET
AGE=
(
CASE NAME
WHEN 'Hello' THEN 18
WHEN 'world' THEN 11
ELSE AGE
end
)