Oracle nvl函数的理解

String queryString = " from TProject where nvl(submit,'no') = 'no' ";

NVL函数 :
nvl(submit,'no')的意思是 submit为空 取no  不为空 去submit的值

nvl(submit,'no')='no'  的意思是我个人是这样理解的 sumbit为空值时nvl函数 将 空值 转化为no 这样就能查到为空的记录了  sumbit不为空值 也不取submit 的值 将后面的='no'赋给submit,

这样 假如sumbit有三个值可选 yes  no  和 空 那么 查询到的就是 除yes以外的所有记录

小测试:

CREATE TABLE TProject
(
    ID NUMBER(4),
    sub VARCHAR2(20)   
);
INSERT INTO TProject VALUES(1, 'yes');
INSERT INTO TProject VALUES(2, 'no');
INSERT INTO TProject VALUES(3, NULL);
测试结果:

ff

所以,选择是除了sub为yes的所有记录,包括为null的记录。

猜你喜欢

转载自li1314aishui.iteye.com/blog/1343353