Articles

SQL: Operatoren UNION


Eksempel – Forskellige feltnavne

Det er ikke nødvendigt, at de tilsvarende kolonner i hver SELECT-sætning har samme navn, men de behøver at være den samme tilsvarende data typer.

når du ikke har de samme kolonnenavne mellem SELECT-sætningerne, bliver det lidt vanskeligt, især når du vil bestille resultaterne af forespørgslen ved hjælp af ORDER BY-klausulen.

lad os se på, hvordan du bruger fagforeningen med forskellige kolonnenavne og bestiller forespørgselsresultaterne.,

For eksempel:

SELECT supplier_id, supplier_nameFROM suppliersWHERE supplier_id > 2000UNIONSELECT company_id, company_nameFROM companiesWHERE company_id > 1000ORDER BY 1;

I denne SQL-UNION eksempel, da de kolonne navne er forskellige mellem de to SELECT-sætninger, det er mere fordelagtigt for reference kolonner i den RÆKKEFØLGE, VED bestemmelse af deres position i resultatet. I dette eksempel har vi sorteret resultaterne af supplier_id/company_id i stigende rækkefølge, som betegnet med ORDER BY 1. Felterne supplier_id / company_id er i position #1 i resultatsættet.

lad os nu undersøge dette eksempel yderligere med data.,p>

SELECT supplier_id, supplier_nameFROM suppliersWHERE supplier_id > 2000UNIONSELECT company_id, company_nameFROM companiesWHERE company_id > 1000ORDER BY 1;

vil Du få følgende resultater:

supplier_id supplier_name
3000 Apple
4000 Samsung
7000 Sony
8000 IBM

for det Første, bemærk, at den rekord med supplier_id af 3000 vises kun én gang i resultatet, fordi EU forespørgsel fjernet dubletter.,for det andet skal du bemærke, at kolonneoverskrifterne i resultatsættet kaldes supplier_id og supplier_name. Dette skyldes, at disse var de kolonnenavne, der blev brugt i den første SELECT-sætning i Unionen.

Hvis du havde villet, kunne du have alias kolonner som følger:

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;

Nu kolonneoverskrifter i resultatet vil blive alias som ID_Value for den første kolonne, og Name_Value for den anden kolonne.,

ID_Value Name_Value
3000 Apple
4000 Samsung
7000 Sony
8000 IBM