2014-11-10 3 views
0

사이트 (http://www.w3schools.com/sql/sql_union.asp)를 사용하고 있으며 UNIONUNION ALL을 이해하려고합니다. "Customers"및 "Suppliers"표의 작은 부분은 아래 이미지에 나와 있습니다. 내가 다른 데이터 유형의 열입니다 Suppliers에서 CustomersPostalCode에서 열 City에 대한 UNION를 실행할 때이 오류가 발생하지 않는 이유SQL의 다른 데이터 유형 열 조합

나는 혼란 스러워요.

enter image description here enter image description here

가 감사합니다 (그림 2에서 볼 수)

+1

두 결과 세트를 하나의 최종 결과 세트에 함께 결합하지만 동일한 시작 열을 공유합니다. 따라서 두 개의 검색어를 결합하면 도시와 우편 번호가 같은 열에 표시됩니다. 유니온 ALL은 똑같은 일을하지만 아무것도 버리지 않으며, 정규 유니온은 별개의 기록을 가져옵니다. – Zack

+0

첫 번째 테이블의 데이터 유형을 사용하고 있거나 최소한의 제한적인 데이터 유형을 사용 중일 수 있습니다. 노조의 양면을 뒤집어서 어떻게되는지보십시오. –

+0

Varchars의 다른 문자 한계를 벗어나서 다른 데이터 유형이되는 방법을 알지 못합니다. 숫자/정수 데이터 유형은 선행 0이있는 정수를 반환하지 않으므로 둘 다 varchar로 나타납니다. – Zack

답변

4

UNION의 일부 컬럼의 정의를 작업이 동일 할 필요는 없지만, 그들은 호환되어야합니다 암시 적 변환을 통해 데이터 유형이 다른 경우 결과 데이터 유형은 data type precedence에 대한 규칙에 따라 결정됩니다. 유형이 동일하지만 다르지만 precision, scale, or length, 인 경우 결과는 표현식 조합에 대한 동일한 규칙에 따라 결정됩니다.