UNION과 CASE 구성은 가능하면 일치해야 합니다. 서로 다른 유형이 단일 결과 세트가 됩니다. 결의안 알고리즘은 UNION의 각 출력 열에 개별적으로 적용됩니다. CASE는 동일한 알고리즘을 사용하여 결과를 일치시킵니다. 표현.
UNION 및 CASE 유형 해결
모든 입력이 유형인 경우알 수 없음, 유형으로 해결텍스트(선호 문자열 카테고리의 경우 유형). 그렇지 않으면 무시하십시오.알 수 없음유형을 선택하면서 입력합니다.
알 수 없는 입력이 모두 동일한 유형이 아닌 경우 카테고리, 실패.
하나 이상의 알 수 없는 입력이 선호되는 경우 해당 카테고리를 입력하고 해당 유형으로 해결하세요.
그렇지 않으면 첫 번째 알 수 없는 유형으로 해결됩니다. 입력합니다.
모든 입력을 선택한 유형으로 강제 변환합니다.
tgl= SELECT 텍스트 'a' AS "텍스트" UNION SELECT 'b'; 텍스트 ------ 에 비 (2행)여기서 알 수 없는 유형 리터럴 'b'는 유형으로 해석됩니다. 텍스트.
tgl= SELECT 1.2 AS "더블" UNION SELECT 1;
더블
--------
1
1.2
(2행)
여기서 통합의 출력 유형은 강제로 일치합니다. 공용체의 첫 번째/상단 절 유형:
tgl= "모든 정수"로 1을 선택하세요.
tgl- UNION SELECT CAST('2.2' AS REAL);
모든 정수
--------------
1
2
(2행)
이후진짜선호되는 유형이 아닙니다. 파서는 그것을 선택할 이유가 없다고 본다.INTEGER(1이 무엇인지) 그리고 대신 첫 번째 대체 규칙을 사용합니다. 이 예는 선호 유형 메커니즘을 보여줍니다. 우리가 원하는 만큼 많은 정보를 인코딩하지 않습니다. 미래 버전포스트그레스5월 유형 선호도에 대한 보다 일반적인 개념을 지원합니다.