개발 공부중

[ORACLE] UNION 과 UNION ALL 사용예시와 오류 해결 방법 본문

ORACLE

[ORACLE] UNION 과 UNION ALL 사용예시와 오류 해결 방법

개발자 leelee 2023. 12. 11. 23:09

 

연결 연산자인 UNIONUNION ALL은 여러 SELECT 문을 합칠 때 사용된다. 

사용할 때 각 SELECT 문에서 반환되는 열의 수와 데이터 유형이 일치해야 한다.

중복된 행을 제거하는지 아닌지에 따라 UNION 과 UNION ALL을 사용하면 된다.

 

 

예시 데이터

SELECT * FROM TEST1;

 

SELECT * FROM TEST2;

 

 

UNION

중복된 행을 제거하고 중복된 값은 하나의 행으로 출력한다.

-- UNION : 중복된 행을 제거하고 중복된 값은 하나의 행으로 출력한다.
SELECT ETLB_MNG, TEAM_NAME FROM TEST1
UNION
SELECT ETLB_MNG, TEAM_NAME FROM TEST2;

 

 


UNION ALL

중복된 행을 제거하지 않고 모두 포함한다.

-- UNION ALL :중복된 행을 제거하지 않고 모두 포함한다.
SELECT ETLB_MNG, TEAM_NAME FROM TEST1
UNION ALL
SELECT ETLB_MNG, TEAM_NAME FROM TEST2;

 

 

 

오류 해결방법

 

SQL Error [1789] [42000]: ORA-01789: 질의 블록은 부정확한 수의 결과 열을 가지고 있습니다.

SELECT TEAM_NAME FROM TEST1
UNION
SELECT ETLB_MNG, TEAM_NAME FROM TEST2;

 

이 오류는 UNION 연산을 수행하는 두 SELECT 문에서 반환되는 열의 수가 일치하지 않을 때 발생한다.

SELECT 문의 열 수를 일치시켜주면 된다.

 

 

 

SQL Error [1790] [42000]: ORA-01790: 대응하는 식과 같은 데이터 유형이어야 합니다

SELECT ETLB_MNG, TEAM_NAME FROM TEST1   -- 글자, 글자 
UNION
SELECT FILL_DATE, TEAM_NAME FROM TEST2;  --날짜, 글자

 

이 오류는 UNION 연산을 수행하는 두 SELECT 문에서 반환되는 데이터 타입이 일치하지 않을 때 발생한다.

SELECT 문의 데이터 유형을 맞춰주면 된다.

 

 

 

Comments