2

私のSQLクエリでは、このwhere条件があります:

WHERE 
  parentID = prj.parent_id
  and mandator_fk = mandator_id

変数parentIDはデフォルトで null です。

この変数が null の場合、WHERE条件はparentID is null上記のクエリとは異なります ( parentID = prj.parent_id)。この変数が満たされている場合、WHERE条件は になりますparentID = prj.parent_id

たった 1 つの SQL クエリでこれを実行するにはどうすればよいですか?


編集:関数内にあるため、これにはSQLクエリが1つしかありません。

これは機能していませんが、これは私が必要としているもののようなものです:

WHERE 
   CASE 
      WHEN parentID is null THEN parentID is null
   ELSE
     parentID = prj.parent_ID
   END
and mandator_fk = mandator_id

TIA frgtv10

4

2 に答える 2

1

ヌルに参加したいようですので、最初に変換する必要があります。これを試して:

where
NVL(parentId, 0) = NVL(prj.parent_id, 0)
and ...
于 2013-09-05T13:19:20.837 に答える
1

function がサージ可能かどうかわからないNVL()ので、条件を記述する別の方法を次に示します。

WHERE 
    ( parentID = prj.parent_id 
   OR parentID IS NULL AND prj.parent_id IS NULL
    )
  AND mandator_fk = mandator_id
于 2013-09-05T14:50:37.720 に答える