有这样一个sql语句select * from wbxtesting where siteid=$nSiteID and nvl(TESTATTRIBUTE,0)=1 and nvl(confid,0)=0 and length(trim(testname))>0 order by testname,LASTMODIFIEDTIME asc
不知道nvl(TESTATTRIBUTE,0)=1和nvl(confid,0)=0是什么意思?
不知道nvl(TESTATTRIBUTE,0)=1和nvl(confid,0)=0是什么意思?
当TESTATTRIBUTE为空时(null)取值为0,否则为TESTATTRIBUTE的值。
这样可避免漏掉TESTATTRIBUTE为空(null)的记录。
NVL(expr1,expr2)
如果expr1是NULL,则返回expr2,否则返回expr1.返回值与expr1类型相同,除非expr1是字符串类,在这种情况下将返回VARCHAR2类型.这个函数用于确保查询记录集中不包含NULL值.类似的还有
NVL(expr1,expr2,expr3)
如果expr1是NULL,则返回expr2,否则返回expr3.返回值与expr2类型相同,除非expr2是字符类型,在这种情况下返回VARCHAR2类型NULLIF(a,b)
如果a等于b返回NULL,如果不等于返回b.
將null值轉換為非null值
就是判断这两个字段为空
0TESTATTRIBUTE不为空(null) 相当与 0TESTATTRIBUTE is not nullnvl(confid,0)=0
confid为空(null)相当于 confid is null