SQL之 case when then
2010-01-15 13:16 smat 阅读(222) 评论(0) 编辑 收藏 举报视图查询中怎样将原定于如性别sex 这样的字段,字段值为0,1这样的int类型值,查询时直接返回varchar 型的字符‘男’,‘女’以便于我们读取呢?
有人会想到if …else…这样的语句,可是怎么加,都不知道加哪里,因为总是会出错。其实sql中有一个函数能解决这样的查询读取值的问题。那就是下 面要介绍的 Case 函数了。
Case 是计算条件列表并返回多个可能的结果表达式之一。
Case 有两种格式:
- 简单 Case 函数将某个表达式与一组简单表达式进行比较以确定结果。
- Case 搜索函数计算一组布尔表达式以确
定结果。
两种格式均支持可选的 ELSE 参数。
语法
1. CASE input_expression WHEN when_expression THEN result_expression [ ...n ] [ELSE else_result_expression ] END
2. CASE WHEN Boolean_expression THEN result_expression [ ...n ] [ ELSE else_result_expression ] END
例子
1.语法实例:
SELECT Name,Age,CASE Gender WHEN 1 THEN '女' WHEN 2 THEN '男' ELSE '未填' END AS Genders FROM dbo.Contacter_Detail
2. 语法实例:
SELECT Name,Age,CASE WHEN Gender = 1 THEN '女' WHEN .Gender = 2 THEN '男' ELSE '未填' END AS Genders,
FROM dbo.Contacter_Detail
两者返回的结果是一样。很简单,一定记住后面表达式后面有个END结尾呢!