原文地址 http://blog.csdn.net/adwfcu/article/details/3336484
lnnvl用于某个语句的where子句中的条件,如果条件为真就返回真,否则为假。
其含义可理解为LNNVL == IS NULL OR IS NOT TRUE
这样我们在下面的试验中使用的大于小于符号将会是返的,还要注意这个问题。
它的优势是可以处理简单条件判断无法实现的null条件
比如要查询一个学校的登记表中检索其毕业年份早于2010年的,并且包含那些还未填写年份而未null的记录。
create table testaaa(name varchar2(10),year number);
insert into testaaaa values('huangkp',2008);
insert into testaaaa values('wujw',2012 );
insert into testaaaa values('zhangle',null);
insert into testaaaa values('mxy',2007);
然后我们执行下面的代码
select * from testaaaa where lnnvl(year<2010) 意思就是找出year不小于2010的人员,返回的结果包括空值的。
结果为:
1 wujw 2012
2 zhangle
select * from testaaaa where lnnvl(year>2010) 意思就是找出year不大于2010的人员,返回的结果包括空值的。
结果为:
1 huangkp 2008
2 zhangle
3 mxy 2007
空值依然存在
select * from testaaaa where year>2010 找出year大于2010的人员,这个结果中就不包括空值了。
结果为
1 wujw 2012
这个函数经常出现在 Oracle 执行计划中,特别是 where 条件中有 or 的时候
分享到:
相关推荐
- **LNNVL**:逻辑非NULL值,如果表达式为NULL,返回TRUE,否则返回FALSE。 - **TRIM**:用于去除字符串两端或特定字符的空白。 - **UPPER和LOWER**:分别将字符串转换为大写和小写。 - **INSTR**:查找子字符串在主...
- **LNNVL**:逻辑非NULL值,当参数为NULL时返回FALSE,否则返回TRUE。 - **CASE**和**DECODE**:用于创建条件表达式,根据不同的条件返回不同的结果。 - **ROUND, TRUNC和FLOOR**:对数字进行舍入、截断或向下取整...
- Oracle的其他特定函数,如`NVL`、`COALESCE`、`LNNVL`等,也需要在转换时找到相应的MySQL等价函数。 - 触发器、存储过程、索引和约束等数据库对象的转换也需要考虑其在MySQL中的实现方式。 - 数据库模式和权限...
16. **通过内部函数提高效率**:利用内置函数如LNNVL、NVL2等,简化逻辑并提高处理速度。 这些技巧只是Oracle SQL性能优化的一部分,实际应用中还需要结合数据库架构、索引设计、资源分配等多方面因素进行综合考虑...
15. **通过内部函数提高SQL效率**:利用内置函数如LNNVL、LEAST和GREATEST等,可以简化逻辑并提高执行效率。 16. **使用表的别名(Alias)**:别名可以使SQL语句更易读,同时在JOIN操作中避免列名冲突。 以上策略...
16. **通过内部函数提高SQL效率**:Oracle提供了一系列内置函数,如LNNVL、ANALYZE等,合理使用可以提升查询性能。 17. **使用表的别名(Alias)**:别名可以简化SQL语句,提高可读性,同时在JOIN操作中避免列名冲突...
16. **通过内部函数提高SQL效率**:Oracle提供多种内置函数,如LNNVL、NVL2等,它们在特定场景下能提高查询效率。 17. **使用表的别名(Alias)**:为表和列指定别名,可以使SQL语句更简洁,同时有助于提高解析速度。...
16、**通过内部函数提高SQL效率**:Oracle提供了一系列内置函数,如LNNVL、NVL2等,它们在特定情况下可以提高查询效率。 17、**使用表的别名(Alias)**:为长表名或复杂表达式定义别名,可以提高代码可读性和效率...