重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3511|回复: 0
打印 上一主题 下一主题

[PL/SQL] lnnvl处理空

[复制链接]
跳转到指定楼层
楼主
发表于 2020-1-4 20:42:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
lnnvl用于某个语句的where子句中的条件,如果条件为true就返回false;如果条件为UNKNOWN或者false就返回true。该函数不能用于复合条件如AND, OR, or BETWEEN中


要显示所有COMMISSION_PCT <>0.2 的记录,包含空值,如果我们直接使用


select employee_id,commission_pct from employees where commission_pct<>0.2 ;


EMPLOYEE_ID COMMISSION_PCT
----------- --------------
        145             .4
        146             .3
        147             .3
        148             .3
        150             .3
        151            .25
        152            .25
        155            .15
        156            .35
        157            .35
        158            .35

EMPLOYEE_ID COMMISSION_PCT
----------- --------------
        159             .3
        160             .3
        161            .25
        162            .25
        163            .15
        164             .1
        165             .1
        166             .1
        167             .1
        168            .25
        171            .15

EMPLOYEE_ID COMMISSION_PCT
----------- --------------
        172            .15
        173             .1
        174             .3
        175            .25
        178            .15
        179             .1

已选择 28 行。


看到不含COMMISSION_PCT 为 NULL的记录,如果想包含NULL的记录,可以使用 LNNVL函数:




SQL> select employee_id,commission_pct from hr.employees where lnnvl(commission_pct=0.2) ;

EMPLOYEE_ID COMMISSION_PCT
----------- --------------
        100
        101
        102
        103
        104
        105
        106
        107
        108
        109
        110
EMPLOYEE_ID COMMISSION_PCT
----------- --------------
        111
        112
        113
        114
        115
        116
        117
        118
        119
        120
        121
EMPLOYEE_ID COMMISSION_PCT
----------- --------------
        122
        123
        124
        125
        126
        127
        128
        129
        130
        131
        132
EMPLOYEE_ID COMMISSION_PCT
----------- --------------
        133
        134
        135
        136
        137
        138
        139
        140
        141
        142
        143
EMPLOYEE_ID COMMISSION_PCT
----------- --------------
        144
        145             .4
        146             .3
        147             .3
        148             .3
        150             .3
        151            .25
        152            .25
        155            .15
        156            .35
        157            .35
EMPLOYEE_ID COMMISSION_PCT
----------- --------------
        158            .35
        159             .3
        160             .3
        161            .25
        162            .25
        163            .15
        164             .1
        165             .1
        166             .1
        167             .1
        168            .25
EMPLOYEE_ID COMMISSION_PCT
----------- --------------
        171            .15
        172            .15
        173             .1
        174             .3
        175            .25
        178            .15
        179             .1
        180
        181
        182
        183
EMPLOYEE_ID COMMISSION_PCT
----------- --------------
        184
        185
        186
        187
        188
        189
        190
        191
        192
        193
        194
EMPLOYEE_ID COMMISSION_PCT
----------- --------------
        195
        196
        197
        198
        199
        200
        201
        202
        203
        204
        205
EMPLOYEE_ID COMMISSION_PCT
----------- --------------
        206
已选择 100 行。


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-5-4 06:19 , Processed in 0.123350 second(s), 20 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表