Oracle“不等于号”与Nulls的情况(转)
2014-08-19 14:26
260 查看
今天突然才发现,Oracle中的“不等于操作符”是忽略null的。
比如,查询comm不等于的500的记录,我会理所当然地使用where comm != 500
预想会返回包含null的不等于500的记录(意识里认为null也是“不等于500”的其中一种情况)。
而实际上,它只返回不为null且不等于500的记录,见如下测试。
使用SCOTT的公共数据测试:
lnnvl用于某个语句的where子句中的条件,如果条件为真就返回真,否则为假。
其含义可理解为LNNVL:IS NULL or IS NOT TRUE
它的优势在于处理简单条件判断无法实现的null条件
事实上,并不仅仅“不等于号”与Null的关系是如此的,其他操作符也类似,只不过“不等于号”使用场景的特殊性让我们容易发觉此特性。
其中原因在于Null,关于Null的种种情况可见以下Oracle的文档:
http://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements005.htm
/article/5245088.html
lnnvl
http://note.youdao.com/share/?id=34f04728448eb41b5f7a5203a22713c5&type=note
比如,查询comm不等于的500的记录,我会理所当然地使用where comm != 500
预想会返回包含null的不等于500的记录(意识里认为null也是“不等于500”的其中一种情况)。
而实际上,它只返回不为null且不等于500的记录,见如下测试。
使用SCOTT的公共数据测试:
--All data
--Not equal 500(Not contain null)
--Not equal 500(contain null)
--Not equal 500(contain null ,use lnnvl())
lnnvl用于某个语句的where子句中的条件,如果条件为真就返回真,否则为假。
其含义可理解为LNNVL:IS NULL or IS NOT TRUE
它的优势在于处理简单条件判断无法实现的null条件
事实上,并不仅仅“不等于号”与Null的关系是如此的,其他操作符也类似,只不过“不等于号”使用场景的特殊性让我们容易发觉此特性。
其中原因在于Null,关于Null的种种情况可见以下Oracle的文档:
http://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements005.htm
/article/5245088.html
lnnvl
http://note.youdao.com/share/?id=34f04728448eb41b5f7a5203a22713c5&type=note
相关文章推荐
- Oracle“不等于号”与Null的情况
- Oracle 不等于判断,防止字段内容为NULL时报错的情况
- 如何查看ORACLE各个表空间的使用情况
- 查看Oracle回滚段的详细情况,以及对性能的影响。
- Hibernate对oracle的分页支持情况。OracleDialect和Oracle9Dialect的一个性能差别。
- 展示JDBC存取ORACLE大型数据对象CLOB几种情况的示范类
- oracle查询表空间的空间占用情况
- oracle数据无法导入表情况之一
- 监视oracle的执行sql情况
- [zt]展示JDBC存取ORACLE大型数据对象LOB几种情况的示范类
- Oracle中查看锁表情况的Sql语句
- 在oracle 10g AS中,修改端口7777到80 (包含了 OC4J,默认情况下,是不是 J2EE 应用和 Http_Server)
- Oracle中提取sysdate函数值和系统日期不同的情况处理
- Oracle 查询表空间使用情况SQL
- Oracle求求空间使用情况
- Hibernate中Oracle保存出现没有反应的情况
- 客户端不安装Oracle情况下连接数据库方法
- 在极高负荷情况下oracle redolog的配置建议
- oracle的监测TABLE数据更改情况
- 无图形界面情况下静默安装Oracle