728x90
300x250
안녕하세요 yunamom 입니다. :D
특정 데이터 값을 포함하는 혹은 제외한 데이터를 추출하고 싶을 때 사용하는 IN, NOT IN 문 사용법에 대하여 포스팅하겠습니다.😊
✨IN 문 사용법
SELECT *
FROM TABLE
WHERE [컬럼명] IN ('A','B'); -- 여러 데이터 제외 가능
-- IN 문을 풀이한 쿼리문
SELECT *
FROM TABLE
WHERE [컬럼명] = 'A'
OR [컬럼명] = 'B'
✨NOT IN 문 사용법
SELECT *
FROM TABLE
WHERE [컬럼명] NOT IN ('A','B'); -- 여러 데이터 제외 가능
-- NOT IN 문을 풀이한 쿼리문
SELECT *
FROM TABLE
WHERE [컬럼명] <> 'A'
AND [컬럼명] <> 'B'
✨SUBQUERY IN
SELECT *
FROM TABLE
WHERE [컬럼명] IN (SELECT [컬럼명]
FROM [TABLE2])
✨SUBQUERY NOT IN
SELECT *
FROM TABLE
WHERE [컬럼명] NOT IN (SELECT [컬럼명]
FROM [TABLE2])
💡 IN,NOT IN 문 안에 서브쿼리 사용시 주의사항
NOT IN문 서브쿼리의 결과 중에 NULL이 포함되는 경우 데이터가 출력되지 않기 때문에
조회 컬럼에 IS NOT NULL 조건을 작성해야 합니다.
NULL은 논리적으로 비교할 수 없는 연산이기 때문에 값이 없게 되는 것이죠.
그러므로, 서브쿼리 내에 해당컬럼이 IS NOT NULL인 조건을 주어 NULL 인 데이터를 제외하고 조회해야 합니다.
SELECT *
FROM TABLE
WHERE [컬럼명] NOT IN (SELECT [컬럼명2]
FROM [TABLE2]
WHERE [컬럼명2] IS NOT NULL)
728x90
300x250
'DB > Oracle' 카테고리의 다른 글
[Oracle] LPAD, RPAD 함수 사용법 (0) | 2022.04.28 |
---|---|
[Oracle] GRANT(권한부여) / REVOKE (권한회수) (0) | 2022.04.26 |
[Oracle] ORDER BY NULL 값 정렬하기 - NULLS FIRST, NULLS LAST (0) | 2022.04.14 |
[Oracle] ROLLUP 총합계 구하기 (0) | 2022.03.25 |
[Oracle] 데이터없는 컬럼에 0 표기하기 NVL , LEFT JOIN (0) | 2022.03.25 |