여기가 작동하지 않는, 내 쿼리입니다하지만 난 이런 일을하고 싶지 :어떻게 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
또는, 내가 추가 할 a_value_from_another_query IS NULL
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_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' 표기법은 NULL이 항상 평가되기 때문에 THEN을 평가하지 않습니다 TRUE가 아니라 UNKNOWN으로. –
'필드가 NULL 인 경우 ... ' –
조건부 조인 기준을 달성하는 방법에 대한 답변을 원할 경우 더 많은 쿼리를 게시하십시오. –