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

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

SQL유니온구조물은 일치해야 합니다 서로 다른 유형이 단일 결과 세트가 될 수 있습니다. 는 해결 알고리즘은 각 출력 열에 별도로 적용됩니다. 노조 질의.교차그리고제외구조가 서로 다른 해결 와 같은 방식으로 입력합니다.유니언.사례, 어레이, , 가장 훌륭함그리고최소구성은 동일한 알고리즘을 사용하여 다음을 수행합니다. 구성요소 표현식을 일치시키고 결과 데이터를 선택합니다. 유형.

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

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

  2. 입력이 도메인 유형인 경우 다음으로 처리합니다. 모든 후속 단계에 대한 도메인의 기본 유형입니다.[1]

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

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

  5. 알 수 없는 첫 번째 입력 유형을 선택하세요. 해당 카테고리에 선호되는 유형이 있는 경우.

  6. 그렇지 않으면, 알 수 없는 마지막 입력 유형을 선택하십시오. 이전에 알려지지 않은 모든 입력을 허용합니다. 암시적으로 변환됩니다. (항상 그런 유형이 있습니다. 왜냐하면 적어도 목록의 첫 번째 유형은 이를 충족해야 하기 때문입니다. 조건.)

  7. 모든 입력을 선택한 유형으로 변환합니다. 있으면 실패 주어진 입력에서 선택된 입력으로의 변환이 아닙니다. 유형.

몇 가지 예가 이어집니다.

예제 10-8. 과소지정된 유형 해결 Union의 유형

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

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

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

예제 10-9. 간단한 형식의 해상도 연합

SELECT 1.2 AS "숫자" UNION SELECT 1;

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

리터럴1.2유형입니다숫자그리고정수1될 수 있습니다 암시적으로 캐스트숫자, 그래서 그 유형 사용됩니다.

예 10-10. 조옮김의 유형 해상도 연합

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

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

여기, 유형 이후실제될 수 없습니다 암시적으로 캐스팅됨정수하지만정수암시적으로 캐스팅될 수 있음진짜, 통합 결과 유형이 해결되었습니다. 와 같이진짜.

참고

[1]

운영자를 위한 도메인 입력 처리와 다소 유사 및 기능을 사용하면 이 동작을 통해 도메인 유형을 a를 통해 보존됨유니언또는 유사 사용자가 모든 사항을 주의 깊게 확인하는 한 입력은 암시적으로 또는 명시적으로 정확한 유형입니다. 그렇지 않으면 도메인의 기본 유형이 선호됩니다.