NAME |
NULL |
LEE |
NULL |
KIM |
PARK |
오라클 초보입니다.... 질문드립니다.
위의 표는 예시를 들기위해 테이블 중 하나의 컬럼만 나타낸것입니다.
컬럼명이 NAME이고 NULL이 허용된다고 했을경우, SELECT하려는 조건 중 NAME값이 있으면 포함되는 해당 로우를 찾고
없을경우, NULL로만 이루어진 로우를 가져오는 쿼리를 짤 수 있을까요?
제 경우는 조건절에 NAME에 해당하는 값이 없으면 아무것도 조회되지 않는 문제를 겪고있습니다.
이를 NAME값이 NULL인 행들만 모두 조회되는 쿼리를 짜고 싶습니다... 가능할까요 ㅠ
+추가수정
조건이 조금 빠진것같네요
단순히 IS NULL로 조회하는것이 아닌
어떤 파라미터값 'LEE'를 통하여 조회했을 때 LEE가 포함되는 로우들을 가져오고
그렇지 않을경우 NULL로만 이루어진 로우를 가져오는.. 분기처리가 되는 조건을 짜고 싶습니다.
WITH TMP AS ( SELECT NULL AS NM, 1 SEQ FROM DUAL UNION ALL SELECT 'LEE' AS NM, 2 SEQ FROM DUAL UNION ALL SELECT NULL AS NM, 3 SEQ FROM DUAL UNION ALL SELECT 'KIM' AS NM, 4 SEQ FROM DUAL UNION ALL SELECT 'PARK' AS NM, 5 SEQ FROM DUAL UNION ALL SELECT 'LE' AS NM, 6 SEQ FROM DUAL ) SELECT * FROM TMP WHERE NVL(NM, 'NULL') IN ( SELECT NVL(NM,'NULL') FROM TMP RIGHT OUTER JOIN DUAL ON NM LIKE '%LEG%' );