union all 예제

위의 스크린샷에서 Sql Server 공용 구조는 모든 쿼리가 직원 테이블에서 14개 + 직원 2015 테이블에서 6개라는 20개의 레코드를 반환한다는 것을 관찰할 수 있습니다. 공용 구조는 결합이 여러 테이블의 열을 결합하는 조인과 공용 구조는 테이블의 행을 결합하는 것과 다릅니다. 이 자습서에서는 잘 알려진 Northwind 샘플 데이터베이스를 사용합니다. . UNION 연산자는 두 개 이상의 SELECT 문의 결과 집합을 결합하는 데 사용됩니다. Sql Server Union 모든 연산자를 열의 같지 않은 길이에서 사용할 때 어떤 일이 일어날지 살펴보겠습니다. 둘째, 결과 집합의 열 제목을 supplier_id 및 supplier_name이라고 합니다. 이는 UNION ALL의 첫 번째 SELECT 문에 사용된 열 이름때문입니다. UNION ALL 절을 쿼리의 UNION 절로 변경해 보겠습니다. . 쿼리는 426개의 행을 반환합니다.

또한 일부 행은 예를 들어, 앳킨슨, 바넷과 같은 중복됩니다. UNION ALL 연산자가 중복 행을 제거하지 않기 때문입니다. 데이터베이스 시스템은 두 SELECT 문을 먼저 실행하여 쿼리를 처리합니다. 그런 다음 두 개의 개별 결과 집합을 하나로 결합하고 중복 행을 제거합니다. 중복 된 행을 제거 하기 위해 데이터베이스 시스템 모든 열에 의해 설정 된 결합 된 결과 정렬 하 고 서로 옆에 있는 일치 하는 행에 대 한 검사합니다. 다음 SQL 쿼리에는 SQL Union All 연산자로 작업하는 동안 직면하는 일반적인 오류가 표시됩니다. 이를 위해 [SQL 자습서] 데이터베이스에 있는 두 테이블(직원 및 직원 2015)을 사용할 예정입니다. UNION ALL 절은 결과 집합의 행을 단일 결과 집합으로 결합합니다. UNION 절은 존재하는 중복 행을 제거하고 UNION ALL 절은 제거하지 않습니다. 직원과 연락처 테이블모두에서 전자 메일 주소로 이메일을 보내야 한다고 가정합니다. 이를 위해서는 먼저 직원 및 연락처의 전자 메일 주소 목록을 작성해야 합니다. 그런 다음 목록에 이메일을 보냅니다.

이제 결과의 열 머리글은 첫 번째 열의 ID_Value와 두 번째 열의 Name_Value로 별칭이 지정됩니다. 하나의 필드를 반환하는 SQL UNION ALL 연산자를 사용하는 방법을 살펴보겠습니다. 이 간단한 예제에서는 SELECT 문의 필드이름과 데이터 형식이 동일합니다. . 이 SQL UNION all 예제에서는 열 이름이 두 SELECT 문 간에 다르므로 결과 집합의 위치에 따라 ORDER BY 절의 열을 참조하는 것이 더 유리합니다.