Yhdistä Taulukon Rivit Käyttäen UNIONIN
tällä oppitunnilla, me aiomme puhua siitä, UNIONIN lauseke. UNION-lausekkeen avulla voit yhdistää taulukkorivejä kahdesta eri kyselystä yhdeksi tulokseksi. Toisin kuin liitossa, jossa yhdistyvät sarakkeet eri pöydistä, liitossa yhdistyvät rivit eri pöydistä. Tässä on esimerkki siitä, mitä UNIONIN näyttää siltä,
Liitot
Kaikki esimerkkejä tästä opetus perustuu Microsoft SQL Server Management Studio ja AdventureWorks2012-tietokantaan., Voit aloittaa käyttämällä näitä ilmaisia työkaluja minun opas alkaa SQL Server.
SQL-tämä lausunto näyttää siltä,
SELECT columnlistFROM table1UNIONSELECT columnlistFROM table2
jotta unionin kaksi pöytää on pari vaatimukset:
- sarakkeiden määrän täytyy olla sama sekä valitse lausuntoja.
- sarakkeiden on järjestyksessään oltava samantyyppisiä.
kun rivejä yhdistetään päällekkäiset rivit eliminoidaan. Jos haluat pitää kaikki rivit sekä valitse statement tulokset Käytä kaikki avainsana.,
Examples
Union two tables
Oletetaan, että sinua pyydettiin toimittamaan luettelo kaikista AdventureWorks2012 tuoteluokista ja alaluokista. Voit tehdä tämän sinun voisi kirjoittaa kaksi erillistä kyselyt ja tarjota kaksi eri tuloksia, kuten taulukoita, tai voit käyttää UNIONIN lauseke toimittaa yksi yhdistetty tulos:
SELECT C.NameFROM Production.ProductCategory AS CUNION ALLSELECT S.NameFROM Production.ProductSubcategory AS S
tästä saat yhdistetty luettelo nimiä, mutta oletetaan, että olet halunnut tietää, mikä nimi oli luokkia vastaan alaluokat., Voit tehdä tämän, voit lisätä uuden sarakkeen, joka osoittaa luokan tyyppi:
SELECT 'category', C.NameFROM Production.ProductCategory AS CUNION ALLSELECT 'subcategory', S.NameFROM Production.ProductSubcategory AS S
Unionin vs. Unionin Kaikki
ero UNIONIN ja UNIONIN KAIKKI on, että UNIONIN palaa ainutlaatuinen joukko rivejä unionin tulos; katsoo, että UNIONIN KAIKKI palauttaa jokaisen rivin.
Esimerkki:
SELECT person.Address.CityFROM person.Address
Palaa 19614 riviä.
SELECT person.Address.CityFROM person.AddressUNIONSELECT person.Address.CityFROM person.Address
palauttaa 575 riviä, mikä on taulukon eri kaupunkinimien lukumäärä. Running UNION All palauttaa koko joukon kaupungin nimiä kahdesti:
SELECT person.Address.CityFROM person.AddressUNION ALLSELECT person.Address.CityFROM person.Address
se palauttaa 39228 riviä.,
kuten näet, on iso ero käyttää kaikki karsinta. Kun niitä ei käytetä, tulokset ovat erillisiä arvoja. Päällekkäisyyksiä ei eliminoida vain rivien välistä jokaisesta tuloksesta, vaan myös sisältä.
Unionin kolme taulukkoa
Oletetaan, että johto haluaa yhdistetty luettelo ihmiset, myyjät, ja tallentaa nimiä, tunnistaa lähde.
tätä varten luomme kolme erillistä kyselyä ja käytämme unionin lauseketta niiden kokoamiseen. Sitten tilaamme listan.,
ensi silmäyksellä, saatat ajatella, JOTTA lauseke olisi sovellettava vain viimeinen valitse toteamus, mutta itse asiassa se koskee kaikki tulokset palautetaan unionin. Tietokantamoottori käsittelee ensin kaikki unionin lausumat ja sitten tilauksen.
Jos olet epävarma käsittely tilauksen, voit käyttää suluissa ”()” valvoa järjestystä arviointi paljon kuin voit kanssa ilmaisuja. Tältä lausunto yleensä näyttäisi suluissa: