CASE WHEN 语句在Oracle和Sybase库中的不同
来源:互联网 发布:淘宝里的名字怎么改 编辑:程序博客网 时间:2024/06/06 01:21
今天提交程序之后,反应有BUG,经仔细查询,发现一个之前并没注意到的问题,那就是case when 语句在Oracle中执行的BUG,用脚本来说明;
Oracle
--建表
CREATE TABLE TABLE_01
(CODE INT NOT NULL,
NAME VARCHAR2(20) NULL);
--插入数值,之所以分别插入null和''是因为在Sybase中''和null是两个不同的值
INSERT INTO TABLE_01 VALUES (1,'');
INSERT INTO TABLE_01 VALUES (2,NULL);
SELECT * FROM TABLE_01;
查询结果为:
使用不同的两种case when 语句查询:
SELECT CASE NAME WHEN '' THEN '1' WHEN NULL THEN '2' ELSE '3' END FROM TABLE_01 WHERE CODE=1;
SELECT CASE WHEN NAME='' THEN '1' WHEN NAME IS NULL THEN '2' ELSE '3' END FROM TABLE_01 WHERE CODE=1;
SELECT CASE NAME WHEN '' THEN '1' WHEN NULL THEN '2' ELSE '3' END FROM TABLE_01 WHERE CODE=1;
SELECT CASE WHEN NAME='' THEN '1' WHEN NAME IS NULL THEN '2' ELSE '3' END FROM TABLE_01 WHERE CODE=1;
Sybase
--建表
CREATE TABLE TABLE_01
(CODE INT NOT NULL,
NAME VARCHAR(20) NULL)
--插入数值,之所以分别插入null和''是因为在Sybase中''和null是两个不同的值
INSERT INTO TABLE_01 VALUES (1,'')
INSERT INTO TABLE_01 VALUES (2,NULL)
SELECT * FROM TABLE_01
查询结果为:,由此可见sybase中‘’和null不是一个值。
使用两种case when 查询结果:
结论:case when的两种写法,在sybase中随便使用,而在Oracle中则只能用case when cloumn=? then ? when column=? then ? else ? end 这种写法。
- CASE WHEN 语句在Oracle和Sybase库中的不同
- oracle case when在select中的用法
- oracle case when 在sql中的使用
- oracle中的case when
- Oracle中的CASE When和Decode比较
- Oracle 的case ...when语句
- SQL语句中的case when在access中的使用
- SQL中的CASE WHEN语句
- SQL中的CASE WHEN语句
- sybase case when
- Oracle中的逻辑判断(nvl、decode和case when)
- oracle中的计算函数decode和case when
- oracle中的case语句
- oracle update set 使用case when语句
- oracle case when then end 语句
- ORACLE case when查询语句用法
- 关于ORACLE的case when 嵌套语句
- sql中的case when 语句详解
- Virtualbox下如何实现windows主机和linux虚拟机之间文件夹共享及双向拷贝
- 腾讯微信支付开发流程
- 泛型——练习
- final,finally,finalize的区别
- 02:找第一个只出现一次的字符
- CASE WHEN 语句在Oracle和Sybase库中的不同
- 最常用的15大Eclipse开发快捷键技巧
- Snapdragon NPE SDK 的环境配置
- 安倍给印度110亿贷款推销新干线 德媒:或血本无归
- 搭建CDH版phoenix
- 在Anaconda中安装opencv
- jni: bad arguments passed to 错误
- quartz
- 03:基因相关性