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

标题: lnnvl处理空 [打印本页]

作者: 郑全    时间: 2020-1-4 20:42
标题: lnnvl处理空
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 行。







欢迎光临 重庆思庄Oracle、Redhat认证学习论坛 (http://bbs.cqsztech.com/) Powered by Discuz! X3.2