를 들어-서로 다른 필드 이름
그것은 필요하지 않습 해당하는 열에서 각각의 선택 문 동일한 이름이지만,그들은 동일해야 합 해당 데이터 유형이 있습니다.
SELECT 문 사이에 동일한 열 이름이 없으면 특히 ORDER BY 절을 사용하여 쿼리의 결과를 주문하려는 경우 약간 까다로워집니다.
다른 열 이름을 가진 UNION ALL 연산자를 사용하고 쿼리 결과를 정렬하는 방법을 살펴 보겠습니다.,
예를 들어,
SELECT supplier_id, supplier_nameFROM suppliersWHERE supplier_id > 2000UNION ALLSELECT company_id, company_nameFROM companiesWHERE company_id > 1000ORDER BY 1;
이 SQL UNION 모든 예 때문에,열 이름을 사이에 다른 두 개의 선택 문는 것이 더 유리한 참조는 열에서 주문 절에 의해에서의 위치 결과를 설정합니다. 이 예에서는ORDER BY 1
로 표시된대로 supplier_id/company_id 별 결과를 오름차순으로 정렬했습니다. Supplier_id/company_id 필드는 결과 집합의 위치#1 에 있습니다.
자,이 예제를 데이터로 더 살펴 보겠습니다.,결과:
supplier_id | supplier_name |
---|---|
3000 | 애플 |
3000 | 애플 |
4000 | 삼성 |
7000 | Sony |
8000 | IBM |
첫째,주는 것으로 기록 supplier_id3000 타에서 두 번의 결과로 설정하기 때문에 유니온 모든 쿼리가 반환하는 모든 행하고 중복된 항목을 제거하지 않습니다.,
둘째,결과 집합의 열 제목을 supplier_id 및 supplier_name 이라고합니다. 이는 연합 ALL 의 첫 번째 SELECT 문에 사용 된 열 이름 이었기 때문입니다.
경우고 싶어했고,당신이 할 수 있는 별칭을 열을 다음과 같다:
SELECT supplier_id AS ID_Value, supplier_name AS Name_ValueFROM suppliersWHERE supplier_id > 2000UNION ALLSELECT company_id AS ID_Value, company_name AS Name_ValueFROM companiesWHERE company_id > 1000ORDER BY 1;
이제 열 머리글에서 결과는 별칭으로 ID_Value 을 위한 첫 번째 열고 Name_Value 두 번째 열에 있습니다.,
ID_Value | Name_Value |
---|---|
3000 | Apple |
3000 | Apple |
4000 | Samsung |
7000 | Sony |
8000 | IBM |
Leave a Reply