這裏是我的查詢,他們沒有工作,但我想要做這樣的事情:如何在IS NULL的WHERE子句中使用CASE語句?
SELECT a_field FROM a_table
WHERE
...
AND
CASE
WHEN a_value_from_another_query IS NULL THEN a_second_field IS NULL
ELSE a_second_field = a_value_from_another_query
END
或者
SELECT a_field FROM a_table
WHERE
...
AND
CASE a_value_from_another_query
WHEN NULL THEN a_second_field IS NULL
ELSE a_second_field = a_value_from_another_query
END
或者
SELECT a_field FROM a_table
WHERE
...
AND
CASE NVL(a_value_from_another_query, 'x')
WHEN 'x' THEN a_second_field IS NULL
ELSE a_second_field = a_value_from_another_query
END
當a_value_from_another_query IS NULL
,我要添加a_second_field IS NULL
到我的WHERE子句,當a_value_from_another_query IS NOT NULL
,我想將a_second_field = a_value_from_another_query
添加到我的WHERE子句中。我怎樣才能做到這一點?
你將不得不澄清你的思想 - 然後再解釋。你可以使用'CASE expr WHEN value THEN ...'表示法,或者你可以使用'CASE when expr THEN ...',但是你簡單的'CASE WHEN NULL THEN'表示法永遠不會評估THEN,因爲NULL總是會評估到UNKNOWN,而不是TRUE。 –
'CASE當字段爲NULL ...' –
發佈更多的查詢,如果你想要一個關於如何完成條件連接標準的答案。 –