SQLUnion구조물이 일치해야합니다 아마도 단일 결과 세트가 될 수있는 유형이 다릅니다. 그만큼 해상도 알고리즘은 각 출력 열에 별도로 적용됩니다 노조 쿼리의. 그만큼Intersectand제외Constructs는 비 유사합니다 와 같은 방식으로 유형Union. 에이caseConstruct도 동일을 사용합니다 구성 요소 표현식을 일치시키고 선택하는 알고리즘 결과 데이터 유형.
Unionandcase유형 해상도
모든 입력이 유형 인 경우알 수없는, 유형으로 해결텍스트(선호 문자열 카테고리에 유형). 그렇지 않으면 무시알 수없는유형을 선택하는 동안 입력.
비 unknown 입력이 모두 같은 유형이 아닌 경우 카테고리, 실패.
하나 이상이 아닌 입력이 선호되는 경우 해당 범주를 입력하고 해당 유형으로 해결하십시오.
그렇지 않으면 첫 번째 비 unknown의 유형으로 해결하십시오 입력.
모든 입력을 선택한 유형에 강요합니다.
예 5-7. Union에서 지정된 유형
TGL = 텍스트 'A'AS "TEXT"UNION SELECT 'B'; 텍스트 ------ 에이 비 (2 줄)
여기, 알 수없는 유형의 리터럴'b'유형 텍스트로 해결됩니다.
예 5-8. 간단한 변환을 입력하십시오 노동 조합
TGL = SELECT 1.2 AS "Double"Union Select 1; 더블 -------- 1 1.2 (2 줄)
문자 그럴1.2is type이중 정밀도, 선호하는 유형 숫자 범주이므로 유형이 사용됩니다.
예 5-9. 변환으로 변환을 입력하십시오 노동 조합
여기서 노조의 출력 유형은 연합의 첫 번째 조항 유형 :
tgl = 1을 "모든 정수"로 선택하십시오. tgr- Union Select Cast ( '2.2'로 실제); 모든 정수 -------------- 1 2 (2 줄)
이후Real선호하는 유형이 아닙니다. 파서는 그것을 선택할 이유가 없습니다Integer(이것은 1 인) 대신에 떨어집니다 우선 초기 규칙으로 돌아갑니다. 이 예 선호하는 유형 메커니즘이 인코딩되지 않음을 보여줍니다 우리가 원하는만큼 많은 정보. 미래 버전의PostgreSQL더 많은 것을 지원할 수 있습니다 유형 선호도의 일반적인 개념.