SAP HANA Unió és Unió összesen: Operator példák

⚡ Okos összefoglaló

SAP HANNA OperaA tor számításokat, érték-összehasonlításokat vagy értékadásokat végez az SQL-en belül. Hat operátorcsalád létezik: egy- és bináris, aritmetikai, karakterlánc-, összehasonlító, logikai és halmazoperátorok, például az UNION és az INTERSECT.

  • ➕ Egy- és bináris számrendszerek: Az unáris operátor egy operandust, a bináris operátor pedig kettőt fogad el.
  • 🧮 Számtan: Összeadás, alponttracA szorzás, osztás és szorzás numerikus operandusokon működik.
  • 🔗 Karakterlánc összefűzése: Két függőleges vonal köti össze a karakterláncokat, kifejezéseket vagy konstansokat egyetlen értékké.
  • 🇧🇷 Összehasonlítás: Az egyenlő, nagyobb, kisebb és ezek kombinációi egy igazságértéket adnak vissza a szűréshez.
  • 🔀 Logikus: Az AND, OR és NOT operátorok feltételeket kombinálnak egy WHERE záradékon belül.
  • 🧩 Készlet Operators: Az UNION eltávolítja a duplikált sorokat, az UNION ALL megőrzi azokat, az INTERSECT pedig a közös sorokat adja vissza, KIVÉVE az alsorokat.tracts.
  • 📊 Működő példa: Két, értékeket megosztó táblázat mutatja be az egyes halmazoperátorok eltérő kimenetét.

SAP HANA UNION és UNION ALL operátorok

SAP HANNA Operator használható számításra, érték-összehasonlításra vagy érték hozzárendelésére.

SAP HANNA Operatorzok

  • Unáris és bináris Operator
  • Számtan Operator
  • Húr Operatorzok
  • Compare Operator
  • logikus Operator
  • Készlet Operator

Minden operátor egy értéket ad vissza, ezért egymásba ágyazhatók. Kiértékelésük sorrendjét a precedencia határozza meg, amelyet az egyes családok után ismertetünk.

Unáris és bináris Operator

Operator OperaCIÓ Leírás
Unary Egy unáris operátor egy operandusra vonatkozik Unáris plusz operátor(+) Unáris negációs operátor(-) Logikai negáció(NOT)
Kétkomponensű Egy bináris Operator két operandusra vonatkozik Szorzóműveletek ( *, / ) Additív operátorok ( +,- ) Összehasonlító operátorok ( =,!=,<,>,<=,>= ) Logikai operátorok ( ÉS, VAGY )

Számtan Operator

  • Kiegészítés (+)
  • alatttracció (-)
  • Szorzás ( * )
  • Osztály ( / )

Húr Operator

Húr OperaA tor egy összefűzési operátor, amely két elemet, például karakterláncokat, kifejezéseket vagy konstansokat egyesít egybe.

Két függőleges sáv „||” összefűzési operátorként használatos.

Compare Operator

Az összehasonlító operátor két operandus összehasonlítására szolgál. Az alábbiakban az összehasonlítások listája található Operator-

  • Egyenlő ( = )-vel
  • Nagyobb mint ( > )
  • Less Mint ( < )
  • Nagyobb vagy egyenlő, mint ( >= )
  • Less egyenlő vagy nagyobb ( <= )
  • Nem egyenlő (!= , <> )

logikus Operator

A keresési feltételekben logikai operátort használnak.

Pl. WHERE feltétel1 ÉS / VAGY / NEM feltétel2

Az alábbiakban a logikai operátorok listája látható -

  • ÉS – (pl. WHERE feltétel1 ÉS feltétel2)
    Ha az 1. feltétel és a 2. feltétel is igaz, akkor a Kombinációs feltétel igaz, különben hamis lesz.
  • VAGY – (pl. WHERE feltétel1 VAGY feltétel2)
    Ha az 1. feltétel VAGY a 2. feltétel igaz, akkor a kombinált feltétel igaz vagy hamis, ha mindkét feltétel hamis.
  • NEM – (pl. WHERE NOT feltétel)
    NEM feltétel igaz, ha a feltétel hamis.

Készlet Operatorzok

  • UNION – Két vagy több SELECT utasítást vagy lekérdezést egyesít duplikáció nélkül.
  • UNION ALL – Két vagy több SELECT utasítást vagy lekérdezést egyesít, beleértve az összes ismétlődő sort is.
  • INTERSECT – Két vagy több SELECT utasítást vagy lekérdezést kombinál, és az összes közös sort visszaadja.
  • KIVÉVE – Az első lekérdezés kimenetét veszi, és eltávolítja a második lekérdezés által kiválasztott sort.

Például Van két táblám (tábla1, táblázat2), amelyben néhány érték közös.

Készlet Operabetör SAP HANNA

Ehhez a két táblázathoz a Set operátort (Union, Union ALL, Intersect, kivéve) használjuk SQL az alábbi -

Hozzon létre Table1- SQL Script

CREATE COLUMN TABLE DHK_SCHEMA.TABLE1
( ELEMENT CHAR(1),
  PRIMARY KEY (ELEMENT)
);
INSERT INTO DHK_SCHEMA.TABLE1 VALUES ('P');
INSERT INTO DHK_SCHEMA.TABLE1 VALUES ('Q');
INSERT INTO DHK_SCHEMA.TABLE1 VALUES ('R');
INSERT INTO DHK_SCHEMA.TABLE1 VALUES ('S');
INSERT INTO DHK_SCHEMA.TABLE1 VALUES ('T');

Hozzon létre Table2- SQL Script

CREATE COLUMN TABLE DHK_SCHEMA.TABLE2
( ELEMENT CHAR(1),
  PRIMARY KEY (ELEMENT)
);
INSERT INTO DHK_SCHEMA.TABLE2 VALUES ('S');
INSERT INTO DHK_SCHEMA.TABLE2 VALUES ('T');
INSERT INTO DHK_SCHEMA.TABLE2 VALUES ('U');
INSERT INTO DHK_SCHEMA.TABLE2 VALUES ('V');
INSERT INTO DHK_SCHEMA.TABLE2 VALUES ('W');

Megjegyzések: Itt a „DHK_SCHEMA” egy sémanév, amelyben a felhasználó módosíthatja a séma nevét SQL Eszerint.

Készlet Operator A példák az alábbiak

Operator SQL lekérdezés teljesítmény Felhasználás
UNION SELECT *
FROM
(
SELECT ELEM
FROM DHK_SCHEMA.TABLE1
UNION
SELECT ELEM
FROM DHK_SCHEMA.TABLE2
)
RENDEZÉS ELEM;

UNION halmaz operátor kimenet

Két vagy több lekérdezés eredményének kombinálása ismétlődés nélkül.
UNIÓ MINDEN SELECT *
FROM
(
SELECT ELEM
FROM DHK_SCHEMA.TABLE1
UNIÓ MINDEN
SELECT ELEM
FROM DHK_SCHEMA.TABLE2
)
RENDEZÉS ELEM;

UNION ALL operátor kimenetének beállítása

Két vagy több lekérdezés eredményének kombinálása az összes duplikátummal.
METSZÉS SELECT *
FROM
(
SELECT ELEM
FROM DHK_SCHEMA.TABLE1
METSZÉS
SELECT ELEM
FROM DHK_SCHEMA.TABLE2
)
RENDEZÉS ELEM;

INTERSECT halmaz operátor kimenet

Két vagy több lekérdezés eredményének kombinálása az összes gyakori sorral.
KIVÉVE SELECT *
FROM
(
SELECT ELEM
FROM DHK_SCHEMA.TABLE1
KIVÉVE
SELECT ELEM
FROM DHK_SCHEMA.TABLE2
)
RENDEZÉS ELEM;

KIVÉVE a set operátor kimenetét

Elveszi az első lekérdezés kimenetét, és eltávolítja a második lekérdezés által kiválasztott sort

Készlet Operator Szabályok és Követelmények

A halmazoperátorok egyszerűnek tűnnek, de könnyen elutasítják a lekérdezéseket, mivel teljes eredményhalmazokat hasonlítanak össze az egyes értékek helyett. Négy szabály irányítja őket.

  1. Az oszlopok számának meg kell egyeznie. Mindkét SELECT utasításnak ugyanannyi oszlopot kell visszaadnia. Az eltérés azonnal hibát jelez, és az üzenet a pozíciót nevezi meg az oszlop helyett.
  2. Az adattípusoknak kompatibilisnek kell lenniük. Az első lekérdezés első oszlopát a második első oszlopával egyezteti a rendszer, és így tovább pozíció, nem név szerint. A kompatibilis numerikus típusok automatikusan konvertálódnak; egy dátumhoz tartozó karakteroszlopot nem.
  3. Az oszlopnevek az első lekérdezésből származnak. Amit a második utasítás az oszlopainak nevez, azt a kimenet figyelmen kívül hagyja, ami bárkit meglep, aki először olvassa az UNION eredményét.
  4. Az ORDER BY a teljes eredményre vonatkozik. A végére tartozik, az utolsó SELECT után, és ezért a fenti példák az uniót egy külső SELECT-be csomagolják.

Érdemes megjegyezni a UNION és a UNION ALL közötti teljesítménybeli különbséget. Az UNION-nak rendeznie vagy hashelnie kell az egyesített eredményt a duplikátumok eltávolításához, míg az UNION ALL egyszerűen hozzáfűzi. Ahol a duplikátumok lehetetlenek vagy elfogadhatóak, az UNION ALL jelentősen gyorsabb nagy táblázatokon. Az ezekben a táblázatokban használt oszlopdefiníciókat a következő részben tárgyaljuk: SAP HANA adattípusok.

Operaelsőbbséget élvez SAP HANA SQL

Amikor egy kifejezésben több operátor is szerepel, a precedencia dönti el, hogy melyiket értékeli ki először. Ennek a hibának az elkövetése tökéletesen lefutó, de rossz sorokat ad vissza, ami sokkal veszélyesebb, mint egy szintaktikai hiba.

Megrendelés Operatorzok Kategória
1 () Zárójelek, mindig először kiértékelve
2 + – (egyetlen operandus) Unáris plusz és tagadás
3 * / Szorzás és osztás
4 + – || Összeadás, alponttracció, összefűzés
5 = != < > <= >= Compare
6 NEM Logikai tagadás
7 ÉS Logikai konjunkció
8 OR Logikai diszjunkció

A klasszikus csapda a 7. és 8. sorban található. Mivel az ÉS szorosabb, mint a VAGY, a feltétel WHERE régió = 'KELET' VAGY régió = 'NYUGAT' ÉS állapot = 'NYITVA' így olvasható KELET, vagy más néven NYUGAT, ami nyitottMinden keleti sor visszaadásra kerül, függetlenül az állapottól. A két régióteszt köré zárójelek hozzáadása megoldja a problémát.

💡 Tipp: Minden vegyes ÉS és VAGY feltétel köré zárójeleket kell tenni, még akkor is, ha a precedencia már a kívánt eredményt adja. A lekérdezés öndokumentálóvá válik, és túléli egy másik fejlesztő későbbi szerkesztéseit.

A mindennapi utasítások szintaxisát a SAP HANA SQL oktatóanyag, valamint a szélesebb platform a SAP HANA oktatóanyag sorozat.

GYIK

UNION ALL. Egyszerűen hozzáfűzi az eredményeket, míg az UNION függvénynek el kell távolítania a duplikátumokat. Használja az UNION ALL függvényt, ha a duplikátumok előfordulása lehetetlen vagy elfogadható a kimenetben.

Igen, SAP A HANA implicit módon konvertálja a számot.ping A TO_VARCHAR-ban való elhelyezés továbbra is jobb gyakorlat, mivel a formátum így a te irányításod alatt marad, nem pedig a munkamenet alapértelmezett értéke.

Igen. A mesterséges intelligencia egyszerű nyelven fogalmazza meg a vegyes ÉS és VAGY feltételt, amely azonnal felfedi, hogy a csoport...ping megegyezik a szándékkal, majd javaslatot tesz a zárójelekre, amelyek kijavítják azt.

Igen. Az INTERSECT és EXCEPT utasítások gyakran belső illesztésként vagy NOT EXISTS záradékként íródnak át, amelyek jobban teljesíthetnek. Az átírás bevezetése előtt hasonlítsa össze a végrehajtási terveket.

Bármi NULL értékkel való összehasonlítása ismeretlen értéket ad vissza igaz vagy hamis helyett, így a sor kiszűrésre kerül. Az egyenlőség operátor helyett használja az IS NULL és az IS NOT NULL értékeket.

Foglald össze ezt a bejegyzést a következőképpen: