SQLShack (Suomi)
Tämä artikkeli antaa syvälle sukeltaa SQL Unionin toimija, jossa kuvataan sen monia käyttötarkoituksia sekä esimerkkejä ja tutkia joitakin yleisiä kysymyksiä, kuten erot Unionin vs Unionin Kaikki.
käsitellä reaalimaailman tietoja koskevat vaatimukset, meidän täytyy ehkä yhdistää tulos settejä useita tietolähteitä, jotta voisimme tehdä data-analyysi tai luoda uusia tietokokonaisuuksia. Aineistot voivat olla identtisiä, mutta on mahdollista, että ne viittaavat eri taulukoihin., Onko olemassa tapa yhdistää tiedot yhdellä kyselyllä? Ovatko Set-operaattorit varteenotettava vaihtoehto? Aloitetaan ja katsotaan, miten osa nykyisistä operaattoreista voi auttaa meitä vastaamaan näihin yhteisiin haasteisiin.,n vs Unionin alueella
Operaattorit
operaattori on merkki tai avainsana määrittelee toiminnon, joka suoritetaan yhden tai useamman ilmaisuja Select.,
Aseta Operaattori
– lähdetään yksityiskohtiin Asettaa Toimijoille, SQL Server, ja miten käyttää niitä,
On neljä perus Asettaa Toimijoille SQL-Palvelin:
- Unionin
- Unioni
- PAITSI
- LEIKKAA
Unionin
Unioni operaattori yhdistää tulokset kahden tai useamman kyselyt osaksi erillinen yhden tulosjoukon, joka sisältää kaikki rivit, jotka kuuluvat kaikki kyselyt Unionissa. Tässä toiminnassa se yhdistää kaksi kyselyä ja poistaa kaksoiskappaleet.,
esimerkiksi, pöytä ’A’ on 1,2, ja 3 ja taulukko ” B ” on 3,4,5.,
lähtö, voit nähdä erillistä luetteloa kirjaa päässä kaksi johtaa sarjaa
Unioni
Kun tarkastellaan Unionin vs Unionin Kaikki löydämme ne ovat melko samanlaisia, mutta niillä on joitakin tärkeitä eroja, mistä suorituskyky näkökulmasta tulokset.,
Unioni operaattori yhdistää tulokset kahden tai useamman kyselyt yhdeksi tulosjoukon, joka sisältää kaikki rivit, jotka kuuluvat kaikki kyselyt Unionissa. Yksinkertaisesti, se yhdistää kaksi tai useampia rivisarjoja ja pitää kaksoiskappaleet.
esimerkiksi, pöytä ’A’ on 1,2, ja 3 ja taulukko ” B ” on 3,4,5.,iv>
lähtö, voit nähdä kaikki rivit, jotka sisältävät toistuvia kirjaa samoin.,>4
rivi ’3’ on yhteinen kahden johtaa sarjaa.,
PAITSI
LUKUUN ottamatta operaattorin luettelot rivien ensimmäisessä, jotka eivät ole toisessa.,/div>
Listan nimi-yhteiset rivit ensimmäiset.,
Huomautus: Se on erittäin helppo visualisoida asettaa toimija, joka käyttää Venn-kaavio, jossa kukin taulukot edustaa risteäviä muotoja. Muotojen risteykset, joissa taulukot limittyvät, ovat rivejä, joissa ehto täyttyy.,olumns, jotka on määritelty kunkin kyselyn on oltava samassa järjestyksessä
Huomautus:
- Kaikki nämä Asettaa toimijat poistaa kaksoiskappaleet, lukuun ottamatta Unionin alueella toimija
- tuotos sarake nimet ovat tarkoitettu ensimmäisen kyselyn minä.,e. kun me ajaa SELECT tahansa Joukko toimijoita ja tulos asettaa kunkin kyselyt voivat olla eri sarakkeiden nimet, joten tulos SELECT viittaa sarakkeen nimet ensimmäisen kyselyn toiminnassa.
- SQL JOIN on useammin käytetty combine-sarakkeita useista toisiinsa liittyvistä taulukoista, kun taas SET-operaattorit yhdistävät rivejä useista taulukoista.,
- Kun ilmaisun tyypit ovat samat, mutta eroavat siinä, tarkkuus, mittakaava, tai pituus, tulos määräytyy perustuu samoja sääntöjä, jossa yhdistyvät ilmaukset
Esimerkkejä:
seuraavat T-SQL-kyselyt on laadittu ja ajaa vastaan Adventureworks2014 tietokantaan. Voit ladata näytteen AdventireWorks2014 tietokanta
-
Kuinka käyttää yksinkertaista SQL Unionin lauseke select
tässä esimerkissä, tuloksena setti sisältää selkeät rivit ensimmäisen sarjan ja toisen sarjan.,Seuraava esimerkki perustuu sääntöön 1, 3 & 5.,
VALITSE 1UNIONINVALITSE 2UNIONINVALITSE 3)UNIONIN(VALITSE 3 BUNIONINVALITSE 4UNIONINVALITSE 5)UNIONI(VALITSE 8 cUNIONINVALITSE 9UNIONINVALITSE 1)-) T;lähtö on yhdistelmä Unionin ja Unionin Kaikkien toimijoiden käyttäen suluissa.,
-
Kuinka käyttää SQL Unionin kanssa kyselyt, jotka ovat where
seuraava esimerkki näyttää, käyttää Unionin kahdessa VALITSE lausuntoja, joiden where ja ORDER BY-lausekkeen.,
The following example is based on the rule 1,2 and 3
12345678910SELECT P1.ProductModelID,P1.NameFROM Production.ProductModel P1WHERE ProductModelID IN(3, 4)UNIONSELECT P2.ProductModelID,P2.,Nimituotannosta.ProductModel P2missä P2.ProductModelID IN(3, 4)JÄRJESTYKSESSÄ P1.Nimi; -
Kuinka käyttää VALITSE lauseke SQL Unionin
seuraava esimerkki luo uuden dbo.valetaulukko, jossa käytetään ensimmäisen select-lausekkeen INTO-lauseketta, jossa on sarakkeiden tuotemalli unionin lopullinen tulosjoukko ja nimi kahdesta eri tulosjoukosta., Tällöin se on johdettu samasta taulukosta, mutta reaalimaailmassa tämä voi olla myös kaksi eri taulukkoa. Seuraava esimerkki perustuu 1 , 2 ja 4 artiklaan.
12345678910111213141516DROP TABLE JOS on OLEMASSA dbo.,dummy;SELECT P1.ProductModelID,P1.NameINTO dummyFROM Production.ProductModel P1WHERE ProductModelID IN(3, 4)UNIONSELECT P2.ProductModelID,P2.NameFROM Production.ProductModel P2WHERE P2.ProductModelID IN(3, 4)ORDER BY P1.Name;GOSELECT *FROM dbo.,Nuken; -
Kuinka käyttää SQL Unionin kanssa kyselyt, jotka on where ja ORDER BY-lausekkeen
Tämä on mahdollista vain, kun käytämme YLÄ-tai koostefunktioita joka select Unionin operaattori. Tässä tapauksessa top 10-rivit on lueteltu jokaisesta tulosjoukosta ja yhdistetty rivit käyttäen Union-lauseketta lopullisen tuloksen saamiseksi. Näet myös, että tilaus lausekkeittain on sijoitettu kaikkiin valitse lauseke.,
123456789101112131415161718192021VALITSE.ModelID,the.,NameFROM(SELECT TOP 10 ProductModelID ModelID,NameFROM Production.ProductModelWHERE ProductModelID NOT IN(3, 4)ORDER BY Name DESC) aUNIONSELECT b.ProductModelID,b.NameFROM(SELECT TOP 10 ProductModelID,NameFROM Production.,ProductModelJOSSA ProductModelID VUONNA(5, 6)ORDER BY Nimi DESC) b; -
Kuinka käyttää SQL Unionin ja SQL Pivot
seuraavassa esimerkissä yritämme yhdistää enemmän kuin yhdet tulokset. Reaalimaailman tilanne, sinulla voi olla taloudellinen numerot eri alueiden tai yksiköiden ja taulukot voi olla samat sarakkeet ja tietotyypit, mutta haluat laittaa ne yhteen joukon rivejä ja yksi raportti., Tällaisessa tilanteessa käyttäisitte unionin lauseketta, ja on erittäin helppoa yhdistää tulokset ja muuttaa tiedot mielekkäämmäksi raportiksi.
tässä esimerkissä ProductModel on luokiteltu Top10, Top100, Top 100 ja muuttaa riviä kuin yhteenlaskettu joukko arvot vastaavat sarakkeet. Seuraava esimerkki perustuu 2 artiklaan.,/div>
23456789101112131415161718192021222324SELECT MAX(Top10) Top10,MAX(Top100) Top100,MAX(Top1000) Top100PÄÄSSÄ(SELECT COUNT(*) Top10,0 Top100,0 Top1000Tuotannosta.,ProductModelWHERE ProductModelID < 10UNIONSELECT 0,COUNT(*),0FROM Production.ProductModelWHERE ProductModelID > 11AND ProductModelID < 100UNIONSELECT 0,0,COUNT(*)FROM Production.,ProductModelJOSSA ProductModelID > 101-) T;NULL-arvot ovat erittäin tärkeää Asettaa Toimijoille ja kohdellaan toisen luokan tietokanta kansalaisia. Koska Nollia pidetään ainutlaatuinen ja jos kaksi riviä on NULL-samassa sarakkeessa, sitten ne olisi pidettävä keskenään samanlaisia, joten tässä tapauksessa, olet todella vertaamalla NULL NULL ja saada tasa-arvoa. Seuraavassa esimerkissä näet NULL-arvojen käytön. Tällöin sitä käytetään aggregaattifunktiolla, max.,
23456789101112131415161718192021222324SELECT MAX(Top10) Top10,MAX(Top100) Top100,MAX(Top1000) Top100PÄÄSSÄ(SELECT COUNT(*) Top10,NULL Top100,NULL Top1000Tuotannosta.,ProductModelWHERE ProductModelID < 10UNIONSELECT NULL,COUNT(*),NULLFROM Production.ProductModelWHERE ProductModelID > 11AND ProductModelID < 100UNIONSELECT NULL,NULL,COUNT(*)FROM Production.,ProductModelJOSSA ProductModelID > 101-) T;
Kuinka käyttää SQL-Unionin Ryhmän kanssa ja Ottaa lausekkeita
Seuraavissa esimerkeissä käytetään Union operaattoria yhdistämään tulos pöydän, että kaikki on ehdollinen lauseke, joka on määritetty käyttämällä Group by-ja Having-ehto.
sukunimeä jäsennetään täsmentämällä, mitä ehtoja on lausekkeessa.
seuraava esimerkki perustuu 5 artiklaan.,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
– VALITSE pp.sukunimi,
kreivi(*) toistettutwice,
0 Toistettutrice
henkilöltä.Henkilö pp
liittyy ihmiseen.Employee AS E on E. BusinessEntityID = pp.,BusinessEntityID
GROUP BY pp.sukunimi
jolla on luku(*) = 2
UNION
Valitse pp.Sukunimi
0,
kreivi(*) NtoZRange
henkilöltä.Henkilö pp
liittyy ihmiseen.Employee AS E on E. BusinessEntityID = pp.BusinessEntityID
GROUP BY pp.,Sukunimi
HAVING COUNT(*) > 2;
|
– Voimme nähdä, että viime nimet on johdettu kahteen eri sarakkeita käyttää Unionin lentoliikenteen harjoittaja,
siinä kaikki.
Tiivistelmä
tähän mennessä olemme käsitelleet eri vaihtoehdoista ja sääntöjä käyttää Asettaa toimijat ja ymmärtää, kun käyttää niitä. Kun määritetään, onko käyttää Union vs Union kaikki on muutamia kohtia harkita., Käyttää Unionin Kaikki, jos tiedät, että tulos settejä useita kyselyt eivät ole päällekkäisiä tai luo kaksoiskappaleet ja muista, jos sinun täytyy käyttää suluissa, voit tehdä sen. Voit myös kääntää ja muuttaa lähtö.
Vain varmista, että tiedot tyypit täsmää ja jos haluat tehdä TILAUKSEN, tee se lopussa sen jälkeen, kun olet suorittanut kaikki ne asettaa kyselyt. Kun kyse on unionin ja unionin välisestä suhteesta, Unionin kaikki on unionia nopeampaa, koska unionin toimijoille aiheutuu lisäkustannuksia päällekkäisyyksien poistamiseksi.
toivottavasti nautit tästä artikkelista SQL Union-operaattorilla., Voit vapaasti esittää kysymyksiä alla olevissa kommenteissa.
- Tekijä
- Viimeisimmät Viestit
Minun erikoisuus piilee suunnittelussa & täytäntöönpanosta Korkean käytettävyyden ratkaisuja ja cross-platform DB Muuttoliike., Tällä hetkellä käytössä olevat teknologiat ovat SQL Server, PowerShell, Oracle ja MongoDB.,
Näytä kaikki viestit Prashanth Jayaram
- nopea katsaus audit-tietokanta SQL – tammikuu 28, 2021
- Miten perustaa Azure Data Sync välillä Azure SQL-tietokantojen ja-tiloissa SQL Server – 20. tammikuuta 2021
- Miten tehdä Azure SQL-tietokannan Import/Export-toimintoja käyttäen PowerShell – 14. tammikuuta 2021