Как я могу использовать оператор CASE в предложении WHERE с IS NULL?

Вот мои запросы, они не работают, но я хочу сделать что-то вроде этого:

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 НЕ НУЛЕВО , я хочу добавить a_second_field = a_value_from_another_query в мое предложение WHERE . Как я могу этого добиться?

5
задан OMG Ponies 29 July 2011 в 02:25
поделиться