我有一个列field_name和列另一个名字是数据 如果列名是Oracle并且Data coulmn为Null,我不希望在查询中返回。
我尝试了这个并且它不起作用
AND field_name = Case When field_name= 'Oracle' And Data IS Null
field_name <> 'Oracle'
Else field_name
End
答案 0 :(得分:1)
使用类似的东西。
AND 1 = (
CASE
WHEN field_name = 'Oracle'
AND data IS NULL THEN 0
ELSE 1
END
);
答案 1 :(得分:0)
您不需要案例陈述,只需:
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
答案 2 :(得分:0)
您的陈述缺少THEN
条款且field_name <> 'Oracle'
无效:
AND field_name = CASE
WHEN field_name = 'Oracle' AND Data IS NULL
THEN 'FALSE'
ELSE field_name
End
可以简化为:
AND ( field_name <> 'Oracle' OR ( Data IS NOT NULL AND field_name IS NOT NULL ) )
答案 3 :(得分:-1)
以下是您可以使用的查询。
{{1}}