我有一个类似这样的查询:
select empno,name
from emp
where job = 'CLERK'
and empno = :empno
如果我传入的empno是null,我想显示所有符合条件job='CLERK'的记录。如果empno是一个具体的数字,则应该按照job和empno进行筛选。
有没有一种在不使用PLSQL的情况下在SQL中实现这个功能的方法?
and (empno = :empno or :empno is null)
select empno,name from emp where
job = 'CLERK'
and empno = NVL(:empno ,empno)
NVL的工作原理
NVL函数的语法如下:
NVL( string1, replace_with )
string1 is the string to test for a null value.
replace_with is the value returned if string1 is null.
NVL
的功能是未知的。@Andomar 的答案更清晰,因为它只依赖于描述性的逻辑运算符。 - Polynomial