Kombinálja a Táblázatsorokat az UNION


kombinálja a Táblázatsorokat az UNION

használatával ebben a leckében az uniós záradékról fogunk beszélni. A UNION záradék segítségével két különböző lekérdezésből álló táblázatsorokat egy eredménybe lehet egyesíteni. Ellentétben a join, amely egyesíti oszlopok különböző táblázatok, Unió egyesíti sorok különböző táblázatok. Itt egy illusztráció arról, hogy egy szakszervezet hogyan néz ki:

Unions

az összes példa erre a leckére a Microsoft SQL Server Management Studio és a AdventureWorks2012 adatbázison alapul., Elkezdheti használni ezeket az ingyenes eszközöket az útmutatóm segítségével az SQL Server használatával.

Az SQL ezt a kijelentést úgy tűnik,

SELECT columnlistFROM table1UNIONSELECT columnlistFROM table2

annak érdekében, hogy az uniós két asztal van egy pár követelmények:

  1. oszlopok számának azonosnak kell lennie mindkét válassza ki a vallomásokat.
  2. az oszlopoknak sorrendben azonos adattípusnak kell lenniük.

Ha a sorok kombinált ismétlődő sorok megszűnnek. Ha meg akarja tartani az összes sort mind a select statement eredményei közül, használja az ALL kulcsszót.,

példák

Union két táblázat

tegyük fel, hogy felkérték, hogy adjon meg egy listát az összes AdventureWorks2012 termékkategóriák és alkategóriák. Ehhez két különálló lekérdezést írhat, és két különálló eredményt adhat meg, például két táblázatot, vagy használhatja az UNION záradékot egy kombinált eredmény eléréséhez:

SELECT C.NameFROM Production.ProductCategory AS CUNION ALLSELECT S.NameFROM Production.ProductSubcategory AS S

ebből egy kombinált névlistát kap, de tegyük fel, hogy meg akarta tudni, melyik név volt kategória vagy alkategória., Ehhez hozzáadhat egy új oszlopot, amely jelzi a kategória típusát:

SELECT 'category', C.NameFROM Production.ProductCategory AS CUNION ALLSELECT 'subcategory', S.NameFROM Production.ProductSubcategory AS S

Union versus Union All

az Unió és az Unió közötti különbség az, hogy az UNION egyedi sorkészletet ad vissza az Unió eredményéből; mivel az UNION ALL minden sorban visszatér.

példa:

SELECT person.Address.CityFROM person.Address

visszaadja az 19614 sorokat.

SELECT person.Address.CityFROM person.AddressUNIONSELECT person.Address.CityFROM person.Address

575 sort ad vissza, ami a táblázatban szereplő különálló városnevek száma. Running UNION All visszaadja a teljes sor városnevek kétszer:

SELECT person.Address.CityFROM person.AddressUNION ALLSELECT person.Address.CityFROM person.Address

visszatér 39228 sorok.,

mint látható, nagy különbség van az összes selejtező használatával. Ha nem használják, az eredmények Különböző értékek. A duplikációkat nemcsak az egyes eredményekből, hanem belülről is kiküszöbölik a sorok között.

Union three tables

tegyük fel, hogy a menedzsment egyesített listát szeretne a forrás szerint azonosított emberekről, eladókról és áruháznevekről.

ehhez három különálló lekérdezést hozunk létre, majd az union záradékot használjuk össze. Ezután megrendeljük a listát.,

első pillantásra úgy gondolhatja, hogy a rendelési záradék csak az utolsó kiválasztási nyilatkozatra vonatkozik, de valójában az Unió által visszaküldött összes eredményre vonatkozik. Az adatbázis-motor először feldolgozza az összes uniós nyilatkozatot,majd a megrendelést.

ha kétségei vannak a feldolgozási sorrendben, akkor zárójelben ” ()”, hogy ellenőrizzék a sorrendben az értékelés, mint te a kifejezéseket. Itt van, amit a nyilatkozat általában zárójelben néz ki:

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük

Tovább az eszköztárra