フィールド名がカラムにあり、カラムが別の名前のデータ カラム名がOracleで、データcoulmnがNULLの場合、クエリに返されません。where句のOracleクエリー・ケース文
私はこれを試してみましたが、それはあなたがちょうどこの、case文を望んでいない
AND field_name = Case When field_name= 'Oracle' And Data IS Null
field_name <> 'Oracle'
Else field_name
End
フィールド名がカラムにあり、カラムが別の名前のデータ カラム名がOracleで、データcoulmnがNULLの場合、クエリに返されません。where句のOracleクエリー・ケース文
私はこれを試してみましたが、それはあなたがちょうどこの、case文を望んでいない
AND field_name = Case When field_name= 'Oracle' And Data IS Null
field_name <> 'Oracle'
Else field_name
End
仕事doesntの:あなたはcase文でそれを行うことができ
AND NOT (field_name = 'Oracle' AND data is null)
を、それは思いますが少し変だ。最初のケースを常にfalseに評価したいので、THENの後の部分はfield_name
と等しくないものにする必要があります。この場合、元の文字列と同じにはならない文字列の先頭にいくつかの文字( "not")を追加しました。
AND field_name = Case When field_name= 'Oracle' And Data IS Null
THEN 'not' || field_name
Else field_name
End
このようなものを使用してください。
AND 1 = (
CASE
WHEN field_name = 'Oracle'
AND data IS NULL THEN 0
ELSE 1
END
);
ここでは、使用できるクエリを示します。
with tmp as (
select 'Oracle' as field_name , 1 as data from dual union all
select 'Oracle' as field_name , null as data from dual union all
select NULL as field_name , null as data from dual union all
select 'Test' as field_name , null as data from dual)
Select * from tmp
Where 1 = case when field_name = 'Oracle' and data is null
then 0
else 1
end
ダウン投票には、議決権行使の論理を説明してください。コメントなしでのダウン投票は、私が思うに生産的なものではありません。 – Jignesh
あなたの文がTHEN
句が欠落しているとfield_name <> 'Oracle'
が無効である:
AND field_name = CASE
WHEN field_name = 'Oracle' AND Data IS NULL
THEN 'FALSE'
ELSE field_name
End
: `field_name`は` NULL`必見であるとき
AND (field_name <> 'Oracle' OR (Data IS NOT NULL AND field_name IS NOT NULL))
場合別々に処理してください。あなたが提供したソリューションはそれをしません。 'field_name'と' data'の両方が 'NULL'である行を通過させます。 – mathguy