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 UNION all operator med forskellige kolonnenavne og bestiller forespørgselsresultaterne.,
For eksempel:
SELECT supplier_id, supplier_nameFROM suppliersWHERE supplier_id > 2000UNION ALLSELECT company_id, company_nameFROM companiesWHERE company_id > 1000ORDER BY 1;
I denne SQL-EU ‘ s 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.,resultater:
supplier_id | supplier_name |
---|---|
3000 | Apple |
3000 | Apple |
4000 | Samsung |
7000 | Sony |
8000 | IBM |
bemærk Først at optage med supplier_id af 3000 vises to gange i resultatet, fordi EU i HELE forespørgslen returnerer alle rækker og ikke fjerner 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 alle.
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 > 2000UNION ALLSELECT 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 |
3000 | Apple |
4000 | Samsung |
7000 | Sony |
8000 | IBM |
Leave a Reply