SQL UNION 절이란?
SQL의 UNION 절(연산자)은 두 개 이상의 SELECT 문의 결과를 하나로 결합하여 반환하면서, 중복된 행은 제외하는 기능을 수행합니다. 여러 테이블이나 뷰에서 유사한 형태의 데이터를 통합해 조회할 때 유용하게 활용됩니다.
UNION 사용을 위한 필수 조건
UNION 절을 사용하려면 결합하려는 각 SELECT 문이 다음 조건을 모두 충족해야 합니다.
- 선택하는 컬럼의 개수가 동일해야 합니다.
- 컬럼 표현식의 개수가 동일해야 합니다.
- 각 컬럼의 데이터 타입이 서로 일치해야 합니다.
- 컬럼의 나열 순서까지 동일해야 합니다.
이러한 조건 중 하나라도 맞지 않으면 쿼리 실행 시 오류가 발생하거나 예상과 다른 결과가 반환될 수 있으므로, 쿼리 작성 전에 각 SELECT 문의 구조를 꼼꼼히 비교하는 것이 좋습니다.
UNION 및 UNION ALL 수행 시 주의사항
UNION을 수행할 때는 해당 연산이 어떤 데이터를 가져오게 되는지 반드시 확인해야 합니다. 특히 UNION ALL을 실행하는 경우에는 대상 뷰(View)가 완전히 구체화(materialized)된 상태여야 합니다. 뷰가 완전히 구체화되어 있지 않으면 대량의 데이터를 처리하는 과정에서 메모리 부족 오류가 발생할 수 있으며, 이것이 바로 SAP HANA에서 UNION 수행 중 메모리 오류가 나타나는 주요 원인 중 하나입니다.
추가 참고 자료
SAP HANA 모델링에 대해 더 자세한 내용이 필요하다면 아래 공식 가이드를 참고하시기 바랍니다.
SAP HANA 가이드