SQL: UNIONIN Operaattori
Esimerkki – Eri kenttien Nimet
Se ei ole välttämätöntä, että vastaavat sarakkeet kussakin SELECT on sama nimi, mutta ne eivät tarvitse olla sama, vastaavat tiedot tyypit.
Kun sinulla ei ole sama sarakkeiden nimien välillä VALITSE lausuntoja, se saa vähän hankala, varsinkin kun haluat jotta kyselyn tulokset käyttämällä ORDER BY-lausekkeen.
katsotaanpa, miten unionin operaattoria käytetään eri sarakkeen nimillä ja tilataan kyselyn tulokset.,
esimerkiksi:
SELECT supplier_id, supplier_nameFROM suppliersWHERE supplier_id > 2000UNIONSELECT company_id, company_nameFROM companiesWHERE company_id > 1000ORDER BY 1;
tässä SQL UNIONIN esimerkki, koska sarakkeiden nimet ovat erilaisia välillä VALITSE lausuntoja, se on edullisempaa viite sarakkeet ORDER BY-lausekkeen mukaan, mikä niiden asema tulosjoukon. Tässä esimerkissä olemme lajiteltu tuloksia supplier_id / company_id nousevassa järjestyksessä, kuin merkitään ORDER BY 1
. Supplier_id / company_id-kentät ovat tulosjoukossa sijalla #1.
Now, let ’ s explore this example further with data.,p>
SELECT supplier_id, supplier_nameFROM suppliersWHERE supplier_id > 2000UNIONSELECT company_id, company_nameFROM companiesWHERE company_id > 1000ORDER BY 1;
Voit saada seuraavat tulokset:
supplier_id | toimittajanimi |
---|---|
3000 | Omena |
4000 | Samsung |
7000 | Sony |
8000 | IBM |
Ensimmäinen, huomaa, että record kanssa supplier_id 3000 ilmestyy vain kerran tulos asettaa, koska UNIONIN kysely poistaa päällekkäisiä merkintöjä.,
Second, huomaa, että tulosjoukon sarakkeen otsikoita kutsutaan supplier_id ja supplier_name. Tämä johtuu siitä, että nämä olivat kolumnit, joita käytettiin liiton ensimmäisessä select-lausumassa.
Jos olisit halunnut, olisit voinut aliasing sarakkeet seuraavasti:
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;
Nyt sarakeotsikoita, tulos on aliasing kuin ID_Value ensimmäisen sarakkeen ja Name_Value toisen sarakkeen.,
ID_Value | Name_Value |
---|---|
3000 | Apple |
4000 | Samsung |
7000 | Sony |
8000 | IBM |