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.

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.
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; |
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; |
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; |
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; |
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.
- 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.
- 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.
- 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.
- 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.





