By: Greg Robidoux | korszerűsített: 2019-10-29 / Megjegyzések (4) / kapcsolódó: 1 | 2 | 3 | 4 | 5 | több > asztalok
probléma
néha szükség van az adatok kombinálására több táblából vagy nézetek intoone átfogó adatkészlet. Ez lehet A táblázatok hasonló adatokat a samedatabase vagy talán szükség van, hogy összekapcsolják a hasonló adatokat adatbázisok vagy evenacross szerverek.
ebben a tippben megnézzük, hogyan használjuk az UNION vs UNIONALL parancsokat, és hogyan különböznek egymástól.,
Solution
Az SQL Serverben több adathalmazt egyesíthet egy átfogó adathalmazba az UNION vagy UNION ALL operátorok használatával. Van egy nagy különbségmost ezek a munka, valamint a végeredmény készlet, amely vissza, de alapvetően thesecommands csatlakozni több adathalmazok, amelyek hasonló struktúrák egy kombinált adathalmaz.
UNION
Ez a művelet lehetővé teszi, hogy csatlakozzon multipledatasets egy adatbázisba, majd távolítsa el a másolatokat, hogy létezik. Alapvetően egy különálló műveletet hajt végre az eredménykészlet összes oszlopában.,
UNION ALL
Ez a művelet ismét lehetővé teszi, hogy csatlakozzon a többszintű adatkészletekhez egy adatkészletbe, de nem távolít el ismétlődő sorokat.Mivel ez nem távolítja el a duplikált sorokat, ez a folyamat gyorsabb, de ha Önnem akar duplikált rekordokat, hanem az UNION operátort kell használnia.,h lekérdezés kell az azonos számú oszlop
Tipp: Ha nem is pont ugyanazok az oszlopok minden lekérdezések használata egy alapértelmezett értéket, vagy NULL értéket, például:
SELECT firstName, lastName, company FROM businessContactsUNIONSELECT firstName, lastName, NULL FROM nonBusinessContactsorSELECT firstName, lastName, createDate FROM businessContactsUNION ALLSELECT firstName, lastName, getdate() FROM nonBusinessContacts
UNION, ill., UNION minden példa
vessünk egy pillantást néhány egyszerű példa, hogy ezek a parancsok működnek, és hogyankülönböző. Amint látni fogja a végső eredményeketa készletek eltérőek lesznek, de van néhányérdekes információ arról, hogy az SQL Server ténylegesen befejezi a folyamatot.
UNION ALL
ebben az első példában az UNION ALL operátort használjuk az AdventureWorks adatbázisából származó alkalmazottal szemben. Ez valószínűleg nem olyasmi, amit tennélne, de ez segít szemléltetni a két operátor közötti különbségeket.
290 sor van a dbo táblázatban.Alkalmazott.,
SELECT * FROM HumanResources.EmployeeUNION ALLSELECT * FROM HumanResources.EmployeeUNION ALLSELECT * FROM HumanResources.Employee
a lekérdezés futtatásakor az eredményhalmaz 870 sorral rendelkezik. Ez a 290 sor visszatért3 alkalommal. Az adatok csak össze egy adathalmaz tetején a többi adathalmaz.
itt található a lekérdezés végrehajtási terve. Láthatjuk, hogy a táblázat queried3 alkalommal SQL Server tett egy Konkatenációs lépés, hogy összekapcsolják az összes adatot.
UNION
ebben a következő példában az UNION operátort használjuk az AdventureWorks adatbázisából származó munkavállalói tableagain ellen.,
SELECT * FROM HumanResources.EmployeeUNIONSELECT * FROM HumanResources.EmployeeUNIONSELECT * FROM HumanResources.Employee
a lekérdezés futtatásakor az eredményhalmaz 290 sorral rendelkezik. Annak ellenére, hogy az adatokat háromszor egyesítettük, az uniós Üzemeltető eltávolította a duplikált rekordokat, és így csak a 290 egyedi sor került elő.
itt található a lekérdezés végrehajtási terve. Láthatjuk, hogy az SQL Server először lekérdezte2 a táblázatok, majd tett egy Merge Join művelet, hogy összekapcsolják az első két táblázatés akkor nem egy másik Merge csatlakozni együtt lekérdezése a harmadik táblázat a lekérdezés.,Tehát láthatjuk, hogy sokkal több munkát kellett elvégezni ahhoz, hogy ezt az eredményt elérjék, mint az összes Unió.
UNION vs UNIÓ MINDEN Példák A Rendezés a Fürtözött Index Oszlop
Ha ezt egy lépéssel tovább egy FAJTA adatot a ClusteredIndex oszlop ezek a kiviteli tervek. Ebből láthatjuk, hogy az SQL Server által használt végrehajtási terv mindegyik művelet esetében azonos, annak ellenére, hogy a végeredmény-készletek továbbra is 870 Sort tartalmaznak az Unió számára, valamint 290 sort az Unió számára.,
UNIÓ VALAMENNYI végrehajtási terv rendezési a fürtözött index oszlop
UNIÓ végrehajtási terv rendezési a fürtözött index oszlop
UNION vs UNIÓ MINDEN Példák A Rendezés a Nem indexelt Oszlop
Itt van egy másik példa ugyanazt a dolgot, de ezúttal egy SORT anon indexelt oszlop. Mint látható, a végrehajtási tervek ismét azonosak ezekhezkét lekérdezés, de ezúttal az egyesítés használata helyett egy összefűzést és Sortoperációkat használnak.,
- nézd meg ezeket a másik tipp, hogy hasznos lehet a segítségével az uniós szereplők
- Összehasonlítva Több Adatsorok a INTERSECTand KIVÉVE szereplők
- SQL Server Négy rész elnevezése
- Hasonlítsa össze az SQL Server Eredményeit Két Lekérdezések segítségével UNIÓ
Utolsó frissítése: 2019-10-29
a szerzőről
összes tipp megtekintése
Leave a Reply