CASE 表达式
时 间:2019-03-15 08:13:49
作 者:缪炜 ID:24010 城市:江阴
摘 要:通过本篇文章我们来学习一下CASE表达式的基本使用方法。
正 文:
CASE表达式有简单 CASE表达式(simple case expression)和搜索 CASE表达式(searched caseexpression)两种写法,它们分别如下所示。
CASE 表达式的写法
复制代码
-- 简单CASE 表达式
CASE sex
WHEN '1' THEN '男'
WHEN '2' THEN '女'
ELSE '其他'
END
-- 搜索CASE 表达式
CASE
WHEN sex = '1'
THEN '男'
WHEN sex = '2'
THEN '女'
ELSE '其他'
END
复制代码
这两种写法的执行结果是相同的,"sex"列(字段)如果是 '1',那么结果为男;如果是 '2',那么结果为女。简单 CASE表达式正如其名,写法简单,但能实现的事情比较有限。简单 CASE表达式能写的条件,搜索 CASE表达式也能写,我个人推荐采用搜索 CASE表达式的写法。
我们在编写 SQL 语句的时候需要注意,在发现为真的 WHEN子句时,CASE表达式的真假值判断就会中止,而剩余的 WHEN子句会被忽略。为了避免引起不必要的混乱,使用 WHEN子句时要注意条件的排他性。
剩余的 WHEN 子句被忽略的写法示例
1 -- 例如,这样写的话,结果里不会出现“第二”
2 CASE
3 WHEN col_1 IN ('a', 'b') THEN '第一'
4 WHEN col_1 IN ('a') THEN '第二'
5 ELSE '其他' END
此外,使用 CASE 表达式的时候,还需要注意以下几点。 注意事项 1:统一各分支返回的数据类型
虽然这一点无需多言,但这里还是要强调一下:一定要注意 CASE 表达式里各个分支返回的数据类型是否一致。某个分支返回字符型,而其他分支返回数值型的写法是不正确的。
注意事项 2:不要忘了写 END
使用 CASE 表达式的时候,最容易出现的语法错误是忘记写 END 。虽然忘记写时程序会返回比较容易理解的错误消息,不算多么致命的错误。但是,感觉自己写得没问题,而执行时却出错的情况大多是由这个原因引起的,所以请一定注意一下。
注意事项 3:养成写 ELSE 子句的习惯
与 END 不同,ELSE 子句是可选的,不写也不会出错。不写 ELSE 子句时,CASE 表达式的执行结果是 NULL 。但是不写可能会造成"语法没有错误,结果却不对"这种不易追查原因的麻烦,所以最好明确地写上 ELSE 子句(即便是在结果可以为 NULL 的情况下)。养成这样的习惯后,我们从代码上就可以清楚地看到这种条件下会生成 NULL,而且将来代码有修改时也能减少失误。
Access软件网官方交流QQ群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- Access对子窗体数据进行批...(10.30)
- 最精简的组合框行来源数据快速输...(10.25)
- Access仿平台的多值选择器...(10.24)
- 【Access日期区间段查询】...(10.22)
- 【Access源码示例】VBA...(10.12)
- Access累乘示例,Acce...(10.09)
- 数值8.88,把整数8去掉,转...(10.08)
- 【Access自定义函数】一个...(09.30)
- 【Access选项卡示例】Ac...(09.09)
学习心得
最新文章
- Access判断多条明细的配方或订...(11.30)
- 如何让后台数据库在局域网共享时,且...(11.29)
- 【Access月初月末日期设置方法...(11.29)
- 【Access IIF函数嵌套示例...(11.26)
- Access快速开发平台--使用组...(11.25)
- Access快速开发平台--对上传...(11.22)
- Access快速开发平台企业版--...(11.18)
- 不会用多表联合查询,多表查询没结果...(11.16)
- 【案例分享】主键字段值含有不间断空...(11.16)
- Access快速开发平台--后台D...(11.14)