SQLShack (Magyar)

0 Comments

Ez a cikk egy mély merülés az SQL Union operátor, leírja a sok felhasználási együtt példákat, és fedezze fel néhány gyakori kérdés, mint a különbségek Unió vs Union All.

a valós adatkövetelmények kezeléséhez szükség lehet több adatforrásból származó eredménykészletek kombinálására, hogy adatelemzést végezhessünk vagy új adatkészleteket hozzunk létre. Az adatkészletek azonosak lehetnek, de valószínű, hogy különböző táblákra hivatkoznak., Van-e mód arra, hogy az adatokat egyetlen lekérdezésben egyesítsük? A Set operátorok életképes lehetőség? Kezdjük el, és nézzük meg, hogy a meglévő üzemeltetők egy része hogyan segíthet megoldani ezeket a közös kihívásokat.,n vs Unió Minden

  • SQL Üzemeltető Szintaxis
  • Hogyan kell használni egyszerű SQL Unió záradék a select statement
  • Hogyan kell használni SQL Unió a lekérdezések, hogy a HOL záradék
  • Hogyan kell használni a VÁLASSZA ki A záradékot az Uniós
  • Hogyan kell használni SQL Unió a lekérdezések, hogy van, AHOL záradék, illetve order by záradék
  • Hogyan kell használni az SQL Unió SQL Fordítsa
  • Hogyan kell használni SQL Unió CSOPORT, HOGY záradékok
  • Szereplők

    Az üzemeltető egy szimbólum vagy egy kulcsszó határozza meg egy műveletet hajt végre egy vagy több kifejezések a Válassza ki a nyilatkozatot.,

    Set Üzemeltető

    menjünk bele a részletekbe, hogy Meghatározott Szereplők SQL Server, hogyan kell használni őket

    négy alapvető Meghatározott Szereplők SQL Szerver:

    1. Union
    2. Union All
    3. KIVÉVE,
    4. ADATBÁZIS

    Union

    Az Unió üzemeltető egyesíti az eredmények két vagy több lekérdezések egy különálló egyetlen eredmény halmaz, amely tartalmazza az összes sor tartozó minden lekérdezések az Unióban. Ebben a műveletben még két lekérdezést kombinál, majd eltávolítja a másolatokat.,

    például az ” A “táblázat 1,2 és 3, A” B ” táblázat pedig 3,4,5.,

    UNION
    VÁLASSZUK a 2
    UNION
    VÁLASSZUK a 3
    )
    UNION
    (
    VÁLASSZUK a 3
    UNION
    VÁLASSZA ki a 4
    UNION
    VÁLASSZUK 5
    );

    a kimenet, látod, egy külön listában a nyilvántartást a két eredmény határozza

    Union All

    Ha ránézünk Unió vs Unió Minden találjuk, hogy meglehetősen hasonló, de van néhány fontos különbség a teljesítmény eredmények szempontjából.,

    az Union operátor két vagy több lekérdezés eredményeit egyetlen eredménykészletbe egyesíti, amely tartalmazza az Unió összes lekérdezéséhez tartozó összes sort. Egyszerűen fogalmazva, egyesíti a két vagy több sorkészletet, és megtartja a másolatokat.

    például az ” A “táblázat 1,2 és 3, A” B ” táblázat pedig 3,4,5.,iv.>

    7
    8

    9
    10
    11
    12
    13
    14
    15
    (
    VÁLASSZA AZ 1. ID
    UNION
    VÁLASSZUK a 2
    UNION
    VÁLASSZUK a 3
    )
    UNION ALL
    (
    VÁLASSZUK a 3
    UNION
    VÁLASSZA ki a 4
    UNION
    VÁLASSZUK 5
    );

    a kimenet, láthatjuk a sorok közé ismétlődő bejegyzések is.,>4

    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    (
    VÁLASSZA AZ 1. ID
    UNION
    VÁLASSZUK a 2
    UNION
    VÁLASSZUK a 3
    )
    adatbázis minden
    (
    VÁLASSZUK a 3
    UNION
    VÁLASSZA ki a 4
    UNION
    VÁLASSZUK 5
    );

    A sorban a ” 3 ” közös között a két eredmény határozza meg.,

    kivéve

    a kivétel operátor felsorolja az első sorokat, amelyek nem a másodikban vannak.,/div>

    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    (
    VÁLASSZUK a 1
    UNION
    VÁLASSZUK a 2
    UNION
    VÁLASSZUK a 3
    )
    KIVÉVE
    (
    VÁLASSZUK a 3 a B
    UNION
    VÁLASSZA ki a 4
    UNION
    VÁLASSZUK 5
    );

    a Lista neve-a közös sor az első szettet.,

    Megjegyzés: nagyon könnyű megjeleníteni egy készletkezelőt egy Venn diagram segítségével, ahol az egyes táblázatokat metsző alakzatok képviselik. Az alakzatok metszéspontjai, ahol a táblák átfedik egymást, azok a sorok, ahol a feltétel teljesül.,olumns meghatározott minden egyes lekérdezés kell ugyanabban a sorrendben

  • Következő SQL utasítás sor határozza meg kell egyeznie a típusú adatokat az első lekérdezés
  • a Zárójelek szabad építeni egyéb meghatározott szereplők ugyanazt a nyilatkozatot
  • lehetséges, hogy egy ORDER BY záradékot, de ez az utolsó állítás az SQL
  • CSOPORT ÁLTAL, majd MIUTÁN záradékok lehet alkalmazni, hogy az egyes lekérdezés
  • Megjegyzés:

    1. Minden ilyen szereplők ismétlődések eltávolítása, kivéve az Unió Minden üzemeltető
    2. A kimeneti oszlop neveket említett, az első lekérdezés én.,e.amikor futunk a SELECT nyilatkozatok bármelyik beállított operátorok és eredményhalmaz az egyes lekérdezések lehetnek különböző oszlopneveket, így az eredmény a SELECT nyilatkozat utal az oszlop nevét az első lekérdezés a műveletben.
    3. az SQL JOIN-t gyakrabban használják oszlopok kombinálása több kapcsolódó táblából, míg a SET operátorok több táblából álló sorokat kombinálnak.,
    4. Ha a kifejezés típusa ugyanaz, de más a precíziós, mérleg, vagy a hossza, akkor az eredmény alapján határozzák meg, ugyanazok a szabályok összefűzésének kifejezések

    Példa:

    A következő T-SQL-lekérdezések készített futás ellen a Adventureworks2014 adatbázis. Letöltheti a minta AdventireWorks2014 adatbázis itt

    1. hogyan kell használni az egyszerű SQL Union záradékot select utasítás

      ebben a példában az eredményhalmaz tartalmaz egy különálló sorokat az első és a második készletből.,A következő példa az 1. szabályra épül, 3 & 5.,

      VÁLASSZUK a 1
      UNION
      VÁLASSZUK a 2
      UNION
      VÁLASSZUK a 3
      )
      UNION
      (
      VÁLASSZUK a 3 a B
      UNION
      VÁLASSZA ki a 4
      UNION
      VÁLASSZUK 5
      )
      UNION ALL
      (
      VÁLASSZA 8 c
      UNION
      VÁLASSZA ki a 9
      UNION
      VÁLASSZUK a 1
      )
      ) T;

      A kimenet a kombináció Unió Unió Összes szereplők, zárójel használata.,

    2. hogyan kell használni az SQL Union-t a WHERE záradékkal rendelkező lekérdezésekkel

      a következő példa az Union használatát mutatja két SELECT-nyilatkozatban, ahol a WHERE záradék és a megrendelés záradék szerint.,

      The following example is based on the rule 1,2 and 3

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10

      SELECT P1.ProductModelID,
      P1.Name
      FROM Production.ProductModel P1
      WHERE ProductModelID IN(3, 4)
      UNION
      SELECT P2.ProductModelID,
      P2.,Név
      a gyártásból.ProductModel P2
      ahol P2.ProductModelID IN (3, 4)
      P1.Name;

    3. használata SELECT into záradék SQL Union

      a következő példa létrehoz egy új dbo.dummy táblázat az INT záradék az első SELECT nyilatkozatot, amely rendelkezik a végeredmény az Unió az oszlopok ProductModel and name két különböző eredmény készletek., Ebben az esetben ugyanabból a táblázatból származik, de valós helyzetben ez két különböző táblázat is lehet. A következő példa az 1., 2. és 4. szabályra épül.

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16

      DROP TABLE HA LÉTEZIK dbo.,dummy;
      SELECT P1.ProductModelID,
      P1.Name
      INTO dummy
      FROM Production.ProductModel P1
      WHERE ProductModelID IN(3, 4)
      UNION
      SELECT P2.ProductModelID,
      P2.Name
      FROM Production.ProductModel P2
      WHERE P2.ProductModelID IN(3, 4)
      ORDER BY P1.Name;
      GO
      SELECT *
      FROM dbo.,Dummy;

    4. hogyan használjuk az SQL Uniót olyan lekérdezésekkel, amelyek a

      felső vagy összesített funkciók az Unió üzemeltetőjének minden egyes kiválasztott nyilatkozatában. Ebben az esetben az egyes eredményhalmazokból a top 10 sor kerül felsorolásra, és a sorokat az Union záradék segítségével kombinálják a végeredmény eléréséhez. Azt is látni, hogy a megrendelés záradék kerül az összes select nyilatkozatot.,

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21

      VÁLASSZA.Modellid,
      az.,Name
      FROM
      (
      SELECT TOP 10 ProductModelID ModelID,
      Name
      FROM Production.ProductModel
      WHERE ProductModelID NOT IN(3, 4)
      ORDER BY Name DESC
      ) a
      UNION
      SELECT b.ProductModelID,
      b.Name
      FROM
      (
      SELECT TOP 10 ProductModelID,
      Name
      FROM Production.,ProductModel
      ahol ProductModelID IN(5, 6)
      megrendelés név szerint DESC
      ) b;

      /div>

    5. Az SQL Union és az SQL pivot

      használata a következő példában több eredménykészletet próbálunk kombinálni. Egy valós helyzetben előfordulhat, hogy különböző régiók vagy osztályok pénzügyi számai vannak, és a táblázatok azonos oszlopokkal és adattípusokkal rendelkeznek, de ezeket egy sorba és egyetlen jelentésbe szeretné helyezni., Ilyen esetben az uniós záradékot használná, és nagyon könnyű az eredményeket összevonni, és az adatokat értelmesebb jelentéssé alakítani.

      ebben a példában a ProductModel Top10, Top100, Top 100 kategóriába van besorolva, a sorokat pedig az értékek összesített halmazaként alakítja át a megfelelő oszlopokba. A következő példa a 2. szabályon alapul.,/div>

      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      SELECT MAX(Top10) Top10,
      MAX(Top100) Top100,
      MAX(Top1000) Top100
      a
      (
      SELECT COUNT(*) Top10,
      0 Top100,
      0 Top1000
      A Termelés.,ProductModel
      WHERE ProductModelID < 10
      UNION
      SELECT 0,
      COUNT(*),
      0
      FROM Production.ProductModel
      WHERE ProductModelID > 11
      AND ProductModelID < 100
      UNION
      SELECT 0,
      0,
      COUNT(*)
      FROM Production.,ProductModel
      HOL ProductModelID > 101
      ) T;

      a NULL értékek nagyon fontosak a Set-Üzemeltetők, illetve kezelik, a második osztály adatbázis polgárok. Mert Nullák tekinthető egyedi, ha két sor egy ÜRES ugyanabban az oszlopban, akkor lenne azonosnak tekinthető, így ebben az esetben tulajdonképpen összehasonlítani egy NULL-NULL, majd egyre egyenlőség. A következő példában NULL értékek használata látható. Ebben az esetben az aggregált funkcióval működik, max.,

      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      SELECT MAX(Top10) Top10,
      MAX(Top100) Top100,
      MAX(Top1000) Top100
      a
      (
      SELECT COUNT(*) Top10,
      NULL Top100,
      NULL Top1000
      A Termelés.,ProductModel
      WHERE ProductModelID < 10
      UNION
      SELECT NULL,
      COUNT(*),
      NULL
      FROM Production.ProductModel
      WHERE ProductModelID > 11
      AND ProductModelID < 100
      UNION
      SELECT NULL,
      NULL,
      COUNT(*)
      FROM Production.,ProductModel
      HOL ProductModelID > 101
      ) T;

    , Hogyan kell használni az SQL Unió Csoport, Hogy záradékok

    A következő példákban az Unió üzemeltető össze az eredménye a táblázat, amely a feltételes mellékmondat segítségével definiált Csoport által, majd Miután záradék.

    a vezetéknevet a having záradék feltételeinek megadásával értelmezzük.

    a következő példa az 5. szabályon alapul.,

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15

    VÁLASSZA ki a pp.lastname,
    COUNT (*) repeatedtwice,
    0 Repeatedthrice
    a személy.Személy pp
    csatlakozzon a HumanResources-hoz.Alkalmazott E. ON e.BusinessEntityID = pp.,BusinessEntityID
    csoport pp.lastname
    miután COUNT(*) = 2
    UNION
    válassza pp.LastName,
    0,
    COUNT(*) NtoZRange
    személytől.Személy pp
    csatlakozzon a HumanResources-hoz.Alkalmazott E. ON e.BusinessEntityID = pp.BusinessEntityID
    csoport pp.,Vezetéknév
    HAVING COUNT(*) > 2;

    láthatjuk, hogy az utolsó nevek származnak két különböző oszlopok segítségével az Unió üzemeltető

    Ez most ennyi volt…

    Összefoglalás

    eddig foglalkoztunk a különböző rendelkezésre álló opciók lehetőséget, majd a szabályok használata Meghatározott szereplők megérteni, hogy mikor kell használni őket. Annak meghatározásakor, hogy az Union vs Union-T használják-e, minden van néhány szempont, amelyet figyelembe kell venni., Használja Union All ha tudja, hogy a több lekérdezésből származó eredménykészletek nem fedik egymást, vagy nem generálnak másolatokat, és ne feledje, hogy ha zárójeleket kell használnia, akkor ezt megteheti. A kimenetet is elforgathatja és átalakíthatja.

    csak ellenőrizze, hogy az adattípusok megegyeznek-e, és ha megrendelést kell tennie, akkor az összes beállított lekérdezés futtatása után végezze el a végén. Természeténél fogva, amikor az Union vs Union All-ről van szó, az Union All gyorsabb, mint az Union; mivel az uniós gazdasági szereplők további költségeket vetnek fel a duplikációk kiküszöbölése érdekében.

    remélem tetszett ez a cikk az SQL Union operátor., Nyugodtan tegyen fel kérdéseket az alábbi megjegyzésekben.

    • Szerző
    • Utolsó Hozzászólás
    Én egy Adatbázis technológus, hogy 11+ éves gazdag, gyakorlati tapasztalat Adatbázis technológiák. Microsoft Certified Professional vagyok, amelyet számítógépes alkalmazás Mesterképzésével támogattam.
    szakterületem a & magas rendelkezésre állású megoldások és platformközi DB migráció megvalósítása., A jelenleg működő technológiák az SQL Server, a PowerShell, az Oracle és a MongoDB.,
    összes Megtekintése hozzászólások Prashanth Jayaram

    Legújabb hozzászólások Prashanth Jayaram (minden)
    • Egy gyors áttekintést adatbázis ellenőrzés az SQL – január 28, 2021
    • Hogyan kell beállítani az Azure Adatok Szinkronizálása között SQL Azure adatbázis, valamint az intézményi SQL Server – január 20, 2021
    • Hogyan kell elvégezni az SQL Azure adatbázis Behozatali/Kiviteli műveletek segítségével PowerShell – január 14, 2021


    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