hyeonga_code
Database_43_SUB QUERY_서브쿼리에서의 널(NULL) 값 본문
-- 서브쿼리에서의 널 값
-- IN 연산자를 사용할 경우 서브쿼리 결과 집합에 널 값이 존재해도 무관합니다.
-- 부하직원이 없는 모든 사원을 표시하기 위한 다음 SQL문은 논리적으로 12개의 행을 반환해야합니다.
SELECT last_name, manager_id
FROM employees
WHERE employee_id NOT IN (SELECT manager_id FROM employees);
-- King 직원의 manger_id 가 null 값이므로 아무 데이터도 출력되지 않았습니다.
-- 서브쿼리에 다음과 같은 WHERE 절을 포함시켜 부하 직원이 없는 모든 사원을 표시할 수 있습니다.
-- 이 경우 NOT EXISTS 연산자로 대체될 수 있습니다.
SELECT last_name, manager_id
FROM employees
WHERE employee_id NOT IN (SELECT manager_id FROM employees
WHERE manager_id IS NOT NULL);
/*
LAST_NAME M_ID
-------------------------------
Ernst 103
Lorentz 103
Rajs 124
Davies 124
Matos 124
Vargas 124
Abel 149
Taylor 149
Grant 149
Whalen 101
Fay 201
Gietz 205
*/
-- 테이블 칼럼의 정보를 조회합니다.
DESC employees;
-- 정보를 조회했을 때 MANAGER_ID, DEPARTMEMT_ID 은 NOT NULLL입니다.
-- 언젠가 NULL 값이 들어갈 수 있습니다. >>> 결과가 출력되지 읺을 수 있습니다.
/*
이름 널? 유형
----------------------------------------------------------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
*/
'Oracle Database' 카테고리의 다른 글
Database_45_데이터 조작과 트랜잭션_DML 데이터 조작어 (0) | 2023.08.03 |
---|---|
Database_44_데이터 조작과 트랜잭션_작업 단위 (0) | 2023.08.03 |
Database_42_SUB QUERY_다중 행 연산자 IN, OUT, AN (0) | 2023.08.02 |
Database_41_SUB QUERY_HAVING 절에서 서브쿼리 사용 (0) | 2023.08.02 |
Database_40_SUB QUERY_서브쿼리 작성 실습 (0) | 2023.08.02 |