Union & Union All in SAP Hana
SAP ХАНА Operaтори
- Унарни и двоични OperaTor
- аритметика OperaTor
- Низ Operaтори
- сравнение OperaTor
- логичен OperaTor
- комплект OperaTor
Унарни и двоични OperaTor
OperaTor | OperaАЦИ | Descriptйон |
---|---|---|
Унар | Унарен оператор се прилага към един операнд | Унарен плюс оператор (+) Унарен оператор за отрицание (-) Логическо отрицание (НЕ) |
Двоен | Двоичен файл Operator се прилага върху два операнда | Мултипликативни оператори ( *, / ) Адитивни оператори ( +,- ) Оператори за сравнение ( =,!=,<,>,<=,>=) Логически оператори ( И, ИЛИ ) |
аритметика OperaTor
- Добавяне (+)
- изваждане (-)
- Умножение ( * )
- Разделяне (/)
Низ OperaTor
Низ Operator е оператор за конкатенация, който комбинира два елемента като низове, изрази или константи в един.
Две вертикални черти „||“ се използва като оператор за конкатенация.
сравнение OperaTor
Операторът за сравнение се използва за сравняване на два операнда. По-долу е даден списък със сравнение Operaтор-
- Равно на ( = )
- По-голямо от (>)
- Less отколкото ( < )
- По-голямо или равно на ( > = )
- Less повече или равно на ( < = )
- Не е равно (!= , <> )
логичен OperaTor
В критериите за търсене се използва логически оператор.
Например WHERE условие1 И / ИЛИ / НЕ условие2
По-долу е даден списък с логически оператори –
- И – (напр. WHERE условие1 И условие2)
Ако и Условие1, И Условие2 са верни, тогава условието за комбиниране е вярно, в противен случай ще бъде невярно. - ИЛИ – (напр. WHERE условие1 ИЛИ условие2)
Ако Условие1 ИЛИ Условие2 е вярно, тогава комбинираното условие е вярно или невярно, ако и двете условия са неверни. - НЕ – (напр. условие WHERE NOT)
Условието НЕ е вярно, ако условието е невярно.
комплект Operaтори
- UNION – Комбинира две или много инструкции за избор или заявка без дублиране.
- UNION ALL – Комбинира две или много инструкции за избор или заявка, включително всички дублирани редове.
- INTERSECT – Комбинира две или много инструкции за избор или заявка и връща всички общи редове.
- EXCEPT – Взима изхода от първата заявка и премахва реда, избран от втората заявка.
Напр Имам две таблици (table1, table2), в които някои стойности са общи.
Използваме оператор Set (Union, Union ALL, Intersect, с изключение) за тези две таблици SQL както по-долу –
Създайте Table1- SQL скрипт
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');
Създайте Table2- SQL скрипт
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');
Забележка: Тук „DHK_SCHEMA“ е име на схема, в което потребителят може да промени името на схемата SQL съответно.
комплект Operator Примерите са както по-долу
OperaTor | SQL заявка | Продукция | Можете да използвате |
---|---|---|---|
СЪЮЗ | МАРКИРАЙ *
ОТ ( МАРКИРАЙ ЕЛЕМЕНТ ОТ DHK_SCHEMA.TABLE1 СЪЮЗ МАРКИРАЙ ЕЛЕМЕНТ ОТ DHK_SCHEMA.TABLE2 ) |
Комбинирайте резултат от две или повече заявки без дублиране. | |
СЪЮЗ ВСИЧКИ | МАРКИРАЙ *
ОТ ( МАРКИРАЙ ЕЛЕМЕНТ ОТ DHK_SCHEMA.TABLE1 СЪЮЗ ВСИЧКИ МАРКИРАЙ ЕЛЕМЕНТ ОТ DHK_SCHEMA.TABLE2 ) ПОРЪЧКА BY ЕЛЕМЕНТ; |
Комбинирайте резултата от две или повече заявки с всички дублирани. | |
ПРЕКРЕСТИ | МАРКИРАЙ *
ОТ ( МАРКИРАЙ ЕЛЕМЕНТ ОТ DHK_SCHEMA.TABLE1 ПРЕКРЕСТИ МАРКИРАЙ ЕЛЕМЕНТ ОТ DHK_SCHEMA.TABLE2 ) ПОРЪЧКА BY ЕЛЕМЕНТ; |
Комбинирайте резултата от две или повече заявки с всички общи редове. | |
С ИЗКЛЮЧЕНИЕ | МАРКИРАЙ *
ОТ ( МАРКИРАЙ ЕЛЕМЕНТ ОТ DHK_SCHEMA.TABLE1 С ИЗКЛЮЧЕНИЕ МАРКИРАЙ ЕЛЕМЕНТ ОТ DHK_SCHEMA.TABLE2 ) ПОРЪЧКА BY ЕЛЕМЕНТ; |
Взима изход от първата заявка и премахва ред, избран от втората заявка |