UNION ALL은 결과 집합의 순서를 보장합니까?
SQL에서 UNION ALL 연산자는 여러 SELECT 문의 결과를 결합합니다. 그러나 결과의 순서를 보장하지는 않습니다. ORDER BY 절이 없으면 행의 순서가 정의되지 않으며 다를 수 있습니다.
질문에 제공된 예를 고려하세요.
SELECT 'O' UNION ALL SELECT 'R' UNION ALL SELECT 'D' UNION ALL SELECT 'E' UNION ALL SELECT 'R'
결과가 다음과 같이 나올 수도 있습니다. "O-R-D-E-R" 순서로 표시되지만 보장할 수는 없습니다. 순서는 데이터베이스 엔진, 데이터 배포, 기타 최적화 등의 요인에 따라 달라질 수 있습니다.
특정 순서를 적용하려면 ORDER BY 절을 사용해야 합니다. 주어진 예에서는 SortOrder 열을 각 SELECT 문에 추가할 수 있습니다.
SELECT 'O', 1 SortOrder UNION ALL SELECT 'R', 2 UNION ALL SELECT 'D', 3 UNION ALL SELECT 'E', 4 UNION ALL SELECT 'R', 5 ORDER BY SortOrder
이 쿼리는 "O-R-D-E-R" 순서로 결과를 명시적으로 정렬합니다. SortOrder 열을 추가하는 것은 원하는 순서가 기본 순서(이 경우 정의되지 않음)와 다른 경우에만 필요합니다.
위 내용은 'UNION ALL'은 SQL 결과 세트의 행 순서를 유지합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!