이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
다음에 대한 동일한 페이지를 보고 싶을 수도 있습니다.젠 토토 PostgreSQL : 문서 : 17 : 10.5. 연합, 사례 및 관련 구성버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

10.5. 유니온, 사례및 관련 구문

SQL유니온구조는 단일 결과 세트가 되려면 서로 다른 유형을 일치시켜야 합니다. 해결 알고리즘은 통합 쿼리의 각 출력 열에 별도로 적용됩니다.교차그리고제외구성은 다음과 같은 방식으로 서로 다른 유형을 해결합니다.유니온. 다음을 포함한 일부 다른 구성사례, 어레이, 그리고가장 훌륭함그리고최소함수, 동일한 알고리즘을 사용하여 구성 요소 표현식을 일치시키고 결과 데이터 유형을 선택하십시오.

다음에 대한 유형 확인유니온, 사례및 관련 구성

  1. 모든 입력이 동일한 유형이지만 그렇지 않은 경우알 수 없음, 해당 유형으로 해결하세요.

  2. 입력이 도메인 유형인 경우 모든 후속 단계에서 도메인의 기본 유형으로 처리하십시오.[1]

  3. 모든 입력이 유형인 경우알 수 없음, 유형으로 해결텍스트(문자열 카테고리의 기본 유형). 그렇지 않으면,알 수 없음입력은 무시됩니다.

  4. 알 수 없는 입력이 모두 동일한 유형 카테고리가 아닌 경우 실패합니다.

  5. 알 수 없는 첫 번째 입력 유형을 후보 유형으로 선택한 다음 왼쪽에서 오른쪽으로 서로 알 수 없는 입력 유형을 고려하십시오.[2]후보 유형이 암시적으로 다른 유형으로 변환될 수 있지만 그 반대의 경우는 불가능하다면 다른 유형을 새 후보 유형으로 선택하십시오. 그런 다음 나머지 입력을 계속 고려하십시오. 이 프로세스의 어느 단계에서든 선호하는 유형이 선택되면 추가 입력 고려를 중단하세요.

  6. 모든 입력을 최종 후보 유형으로 변환합니다. 주어진 입력 유형에서 후보 유형으로의 암시적 변환이 없으면 실패합니다.

몇 가지 예가 이어집니다.

예 10-10. 유니온에서 지정되지 않은 유형을 사용한 유형 확인

텍스트 'a' AS "텍스트" 선택 UNION SELECT 'b';

 텍스트
------
 에
 비
(2행)

여기서는 알 수 없는 유형 리터럴'b'입력으로 해결됩니다텍스트.

예제 10-11. Simple 토토 핫의 유형 확인

SELECT 1.2 AS "숫자" 토토 핫 SELECT 1;

 숫자
---------
       1
     1.2
(2행)

리터럴1.2유형입니다숫자그리고정수1암시적으로 캐스트 가능숫자, 해당 유형이 사용됩니다.

예 10-12. 전치된 공용체의 유형 확인

SELECT 1 AS "실제" 토토 핫 SELECT CAST('2.2' AS REAL);

 진짜
------
    1
  2.2
(2행)

여기, 유형 이후진짜암시적으로 캐스팅할 수 없습니다.정수하지만정수암시적으로 캐스팅 가능진짜, 통합 결과 유형은 다음과 같이 확인됩니다.진짜.

예 10-13. 중첩된 공용체의 유형 확인

SELECT NULL UNION SELECT NULL UNION SELECT 1;

오류: UNION 유형의 텍스트와 정수는 일치할 수 없습니다.

이 실패는 다음과 같은 이유로 발생합니다.PostgreSQL여러 개를 처리함유니언s는 쌍별 연산의 중첩입니다. 즉, 이 입력은 다음과 같습니다.

(SELECT NULL 토토 핫 SELECT NULL) 토토 핫 SELECT 1;

내부유니언발광 유형으로 해결됨텍스트, 위에 주어진 규칙에 따릅니다. 그러면 바깥쪽유니온유형의 입력이 있습니다텍스트그리고정수, 관찰된 오류로 이어집니다. 문제는 가장 왼쪽에 있는지 확인하여 해결할 수 있습니다.유니온원하는 결과 유형의 입력이 하나 이상 있습니다.

교차그리고제외작업도 마찬가지로 쌍으로 해결됩니다. 그러나 이 섹션에 설명된 다른 구성은 하나의 해결 단계에서 모든 입력을 고려합니다.

참고

[1]

Somewhat like the treatment of domain inputs for operators and functions, this behavior allows a domain type to be preserved through a유니온또는 유사한 구성. 단, 사용자가 모든 입력이 암시적 또는 명시적으로 정확한 유형인지 확인하도록 주의해야 합니다. 그렇지 않으면 도메인의 기본 유형이 사용됩니다.

[2]

역사적인 이유로,사례그것을 치료ELSE절(있는 경우)을"첫 번째"입력, 다음과 함께그때다음 조항이 고려됩니다. 다른 모든 경우에는,"왼쪽에서 오른쪽으로"쿼리 텍스트에 표현식이 나타나는 순서를 의미합니다.