3

次のようなクエリがあります。

select empno,name
from emp
where job = 'CLERK'
and empno = :empno

null の empno を渡すと、job = 'CLERK' の条件に一致するすべてのレコードを表示したいと思います。empno が特定の番号の場合、ジョブと empno でフィルタリングする必要があります。

PLSQLを使わずにSQLでこれを行うには?

4

2 に答える 2

6
and (empno = :empno or :empno is null)
于 2012-07-04T14:43:45.393 に答える
3

パスパラメータが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.
于 2012-07-04T14:44:06.337 に答える