exempel – olika fältnamn
det är inte nödvändigt att motsvarande kolumner i varje SELECT-sats har samma namn, men de måste vara samma motsvarande datatyper.
När du inte har samma kolumnnamn mellan select-uttalandena blir det lite knepigt, särskilt när du vill beställa resultaten av frågan med hjälp av ORDER BY-klausulen.
låt oss titta på hur du använder facket alla operatör med olika kolumnnamn och beställa frågeresultaten.,
till exempel:
SELECT supplier_id, supplier_nameFROM suppliersWHERE supplier_id > 2000UNION ALLSELECT company_id, company_nameFROM companiesWHERE company_id > 1000ORDER BY 1;
i det här SQL-facket är alla exempel, eftersom kolumnnamnen skiljer sig mellan de två SELECT-uttalandena, det är mer fördelaktigt att referera kolumnerna i ORDER BY-klausulen genom sin position i resultatuppsättningen. I det här exemplet har vi sorterat resultaten efter supplier_id/company_id i stigande ordning, som betecknas med ORDER BY 1
. Fälten supplier_id / company_id är i position #1 i resultatuppsättningen.
nu, låt oss utforska detta exempel ytterligare med data.,resultat:
supplier_id | supplier_name |
---|---|
3000 | Apple |
3000 | Apple |
4000 | Samsung |
7000 | Sony |
8000 | IBM |
lägg först märke till att posten med supplier_id på 3000 visas två gånger i resultatuppsättningen eftersom alla sökfrågor i unionen returnerar alla rader och inte tar bort dubbletter.,
För det andra, Lägg märke till att kolumnrubrikerna i resultatuppsättningen kallas supplier_id och supplier_name. Detta beror på att dessa var kolumnnamnen som användes i den första select-satsen i Unionen alla.
om du hade velat kan du ha aliaserat kolumnerna enligt följande:
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 kommer kolumnrubrikerna i resultatet att aliaseras som ID_Value för den första kolumnen och Name_Value för den andra kolumnen.,
ID_Value | Name_Value |
---|---|
3000 | Apple |
3000 | Apple |
4000 | Samsung |
7000 | Sony |
8000 | IBM |
Leave a Reply