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