SQL Union의 사용법은 무엇입니까?
SQL Union 사용법 요약:
UNION 연산자는 여러 SELECT 문의 결과를 결과 집합으로 결합합니다.
(1) UNION을 사용할 때 다음 조건이 충족되어야 합니다.
A: 모든 쿼리는 동일한 구조를 가져야 합니다(즉, 쿼리의 열 수와 열 순서가 동일해야 함).
B: 해당 열의 데이터 유형은 다를 수 있지만 호환 가능해야 합니다(소위 호환성이란 두 유형 간에 암시적 변환이 수행될 수 있음을 의미하며 암시적 변환이 수행될 수 없는 경우 오류가 보고됩니다). 동일한 데이터 유형으로의 명시적 변환을 사용할 수도 있습니다.
(데이터 유형이 다른 경우 결과 데이터 유형은 데이터 유형 우선 순위 규칙에 따라 결정됩니다. 유형은 동일하지만 정밀도, 소수 자릿수 또는 길이가 다른 경우 동일한 결과에 따라 결과가 결정됩니다. ) (MSDN: 데이터 유형 우선순위 참조)
C: XML 데이터 유형인 경우 열은 동일해야 합니다(모든 열은 XML 스키마로 유형화되거나 유형이 지정되지 않아야 함). 열은 동일한 XML 스키마 컬렉션에 입력되어야 합니다.
(2) UNION 결과 집합
A: UNION 뒤의 결과 집합의 열 이름은 첫 번째 SELECT 문의 결과 집합의 열 이름과 동일합니다. 다른 SELECT 문의 결과 집합 열 이름은 무시됩니다.
B: UNION은 기본적으로 결과 집합에서 중복 레코드를 삭제합니다. ALL 키워드를 사용하면 모든 레코드가 결과 집합에 유지됩니다(중복 레코드는 유지됨)
(3) 참고
A: 다중 Transact-SQL UNION 연산자를 사용할 수 있습니다
B: UNION 연산자를 사용하는 각 SELECT 문에는 자체 ORDER BY 또는 COMPUTE 절을 포함할 수 없습니다. 대신 ORDER BY 또는 COMPUTE 절은 최종 결합 결과 집합(즉, 마지막 SELECT 문 다음)에서만 사용할 수 있습니다.
C: UNION 연산자를 사용하여 각 SELECT 문에서 GROUP BY 및 HAVING 절을 사용할 수 있습니다.
D: 기본적으로 SQL Server 2005는 UNION 연산자가 포함된 문을 왼쪽에서 오른쪽으로 평가합니다. 괄호를 사용하여 평가 순서를 지정할 수 있습니다.
MSDN 예시는 다음과 같습니다
예를 들어 다음 문은 동일하지 않습니다.
/* First statement. */ SELECT * FROM TableA UNION ALL ( SELECT * FROM TableB UNION SELECT * FROM TableC ) GO /* Second statement. */ (SELECT * FROM TableA UNION ALL SELECT * FROM TableB ) UNION SELECT * FROM TableC) GO
추천 튜토리얼: "SQL Video Tutorial"
위 내용은 SQL Union의 사용법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!