SAP Профспілка HANA та всі профспілки: OperaПриклади тор

⚡ Розумний підсумок

SAP ХАНА Operator виконує обчислення, порівняння значень або присвоєння всередині SQL. Існує шість сімейств операторів: унарні та бінарні, арифметичні, рядкові, оператори порівняння, логічні та оператори множин, такі як UNION та INTERSECT.

  • ➕ Унарний та бінарний: Унарний оператор приймає один операнд, а бінарний оператор — два.
  • 🧮 Арифметика: Додавання, підрядtracОперації множення та ділення з числовими операндами.
  • 🔗 Конкатенація рядків: Дві вертикальні риски об'єднують рядки, вирази або константи в одне значення.
  • 🇧🇷 Порівняння: «Дорівнює», «більше», «менше» та їх комбінації повертають значення істинності для фільтрації.
  • 🔀 Логічні: Оператори AND, OR та NOT поєднують умови всередині речення WHERE.
  • 🧩 Установка Operaторс: UNION видаляє дублікати, UNION ALL зберігає їх, INTERSECT повертає спільні рядки, EXCEPT subtracц.
  • 📊 Приклад роботи: Дві таблиці, що спільно використовують значення, демонструють різний вивід кожного оператора множини.

SAP Оператори HANA UNION та UNION ALL

SAP ХАНА Operator можна використовувати для обчислень, порівняння значень або для призначення значення.

SAP ХАНА Operaторс

  • Унарний і двійковий Operaтор
  • Арифметика Operaтор
  • рядок Operaторс
  • порівняння Operaтор
  • логічний Operaтор
  • Установка Operaтор

Кожен оператор повертає значення, тому вони можуть бути вкладені один в одного. Порядок їх обчислення визначається пріоритетом, що пояснюється після окремих сімейств.

Унарний і двійковий Operaтор

Operaтор Operaції Опис
Одинарний Унарний оператор застосовується до одного операнда Унарний оператор плюс (+) Унарний оператор заперечення (-) Логічне заперечення (NOT)
двійковий Двійковий файл Operator застосовується до двох операндів Множничі оператори (*, /) Адитивні оператори (+,-) Оператори порівняння (=,!=,<,>,<=,>=) Логічні оператори (І, АБО)

Арифметика Operaтор

  • Додавання (+)
  • нижчеtracція (-)
  • Множення ( * )
  • Ділення ( / )

рядок Operaтор

Рядок Operator — це оператор конкатенації, який поєднує два елементи, такі як рядки, вирази або константи, в один.

Дві вертикальні смуги «||» використовується як оператор конкатенації.

порівняння Operaтор

Оператор порівняння використовується для порівняння двох операндів. Нижче наведено список порівняння Operaтор-

  • Дорівнює ( = )
  • Більше (>)
  • Less ніж (<)
  • Більше або дорівнює ( >= )
  • Less ніж або дорівнює ( <= )
  • Не дорівнює (!= , <> )

логічний Operaтор

Логічний оператор використовується в критеріях пошуку.

Наприклад WHERE умова1 І / АБО / НЕ умова2

Нижче наведено список логічних операторів –

  • І – (наприклад, ДЕ умова1 І умова2)
    Якщо і Умова1, і Умова2 є істинними, тоді умова об’єднання є істинною, інакше вона буде хибною.
  • АБО – (наприклад, ДЕ умова1 АБО умова2)
    Якщо Умова1 АБО Умова2 є істинною, тоді умова об’єднання є істинною або хибною, якщо обидві умови є хибними.
  • НЕ – (наприклад, ДЕ НЕ умова)
    Умова НЕ є істинною, якщо умова невірна.

Установка Operaторс

  • UNION – Об'єднує два або багато операторів SELECT або запитів без дублювання.
  • UNION ALL – Об'єднує два або декілька операторів SELECT або запитів, включаючи всі дублікати рядків.
  • ПЕРЕТІНЕННЯ – Об'єднує два або багато операторів SELECT або запитів та повертає всі спільні рядки.
  • EXCEPT – Бере вивід першого запиту та видаляє рядок, вибраний другим запитом.

Напр У мене є дві таблиці (table1, table2), у яких деякі значення є спільними.

Установка Operaтори в SAP ХАНА

Ми використовуємо оператор Set (Union, Union ALL, Intersect,крім) для цих двох таблиць SQL як зазначено нижче -

Створіть таблицю 1 – сценарій 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');

Створіть таблицю 2 – сценарій 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 Приклади наведені нижче

Operaтор SQL Query Вихід Використовує
СОЮЗ ВИБІР *
З
(
ВИБІР ELEMENT
З DHK_SCHEMA.TABLE1
СОЮЗ
ВИБІР ELEMENT
З DHK_SCHEMA.TABLE2
)
СОРТУВАТИ ЗА ЕЛЕМЕНТ;

Вивід оператора UNION set

Об’єднайте результати двох або більше запитів без повторів.
UNION ALL ВИБІР *
З
(
ВИБІР ELEMENT
З DHK_SCHEMA.TABLE1
UNION ALL
ВИБІР ELEMENT
З DHK_SCHEMA.TABLE2
)
СОРТУВАТИ ЗА ЕЛЕМЕНТ;

Вивід оператора UNION ALL

Об’єднайте результати двох або більше запитів з усіма дублікатами.
ІНТЕРСЕКТ ВИБІР *
З
(
ВИБІР ELEMENT
З DHK_SCHEMA.TABLE1
ІНТЕРСЕКТ
ВИБІР ELEMENT
З DHK_SCHEMA.TABLE2
)
СОРТУВАТИ ЗА ЕЛЕМЕНТ;

Вивід оператора INTERSECT

Об’єднайте результат двох або більше запитів з усіма загальними рядками.
Окрім ВИБІР *
З
(
ВИБІР ELEMENT
З DHK_SCHEMA.TABLE1
Окрім
ВИБІР ELEMENT
З DHK_SCHEMA.TABLE2
)
СОРТУВАТИ ЗА ЕЛЕМЕНТ;

EXCEPT вивід оператора set

Отримує вихідні дані першого запиту та видаляє рядок, вибраний другим запитом

Установка OperaПравила та вимоги Tor

Оператори множин виглядають простими, але легко відхиляють запити, оскільки вони порівнюють цілі набори результатів, а не окремі значення. Ними керують чотири правила.

  1. Кількість стовпців має збігатися. Обидва оператори SELECT повинні повертати однакову кількість стовпців. Невідповідність негайно призводить до невдачі, і повідомлення називає позицію, а не стовпець.
  2. Типи даних мають бути сумісними. Перший стовпець першого запиту зіставляється зі стовпцем одним другого і так далі за позицією, а не за назвою. Сумісні числові типи перетворюються автоматично; символьний стовпець з датою – ні.
  3. Назви стовпців взяті з першого запиту. Те, що другий оператор називає своїми стовпцями, ігнорується у виводі, що дивує будь-кого, хто вперше читає результат UNION.
  4. ORDER BY застосовується до всього результату. Він має бути в кінці, після останнього SELECT, і саме тому у наведених вище прикладах об'єднання обгортається зовнішнім SELECT.

Варто зазначити різницю в продуктивності між UNION та UNION ALL. UNION повинен сортувати або хешувати об'єднаний результат, щоб видалити дублікати, тоді як UNION ALL просто додає. Там, де дублікати неможливі або прийнятні, UNION ALL значно швидший у великих таблицях. Визначення стовпців, що використовуються в цих таблицях, розглядаються в SAP Типи даних HANA.

Operaпріоритет торів у SAP HANA SQL

Коли в одному виразі використовується кілька операторів, пріоритет вирішує, який з них обчислюється першим. Помилка в цьому призводить до того, що запит виконується ідеально та повертає неправильні рядки, що набагато небезпечніше, ніж синтаксична помилка.

замовлення Operaторс Категорія
1 () Дужки, завжди обчислюються першими
2 + – (один операнд) Унарний плюс і заперечення
3 * / Множення і ділення
4 + – || Додавання, підрядtracція, конкатенація
5 = != < > <= >= порівняння
6 $NOT Логічне заперечення
7 І Логічний кон'юнкція
8 OR Логічна диз'юнкція

Класична пастка знаходиться в рядках 7 та 8. Оскільки І зв'язується міцніше, ніж АБО, умова ДЕ регіон = «СХІД» АБО регіон = «ЗАХІД» ТА статус = «ВІДКРИТО» читається як СХІД, або ж ЗАХІД, що відкритийКожен східний рядок повертається незалежно від статусу. Додавання дужок навколо двох перевірок регіону виправляє це.

💡 Порада: Візьміть у дужки кожну змішану умову І та АБО, навіть якщо пріоритет вже дає бажаний результат. Запит стає самодокументованим і зберігає свої дані після подальших редагувань іншого розробника.

Синтаксис щоденних операторів розглядається в SAP HANA SQL навчальний посібник та ширша платформа в SAP Підручник з HANA серії.

Поширені запитання

UNION ALL. Він просто додає результати, тоді як UNION має додатково видаляти дублікати. Використовуйте UNION ALL, коли дублікати неможливі або допустимі у виводі.

Так, SAP HANA неявно перетворює число.ping Використання TO_VARCHAR все ще є кращою практикою, оскільки формат тоді залишається під вашим контролем, а не під значенням сеансу за замовчуванням.

Так. Штучний інтелект переформулює змішану умову І та АБО простою мовою, що одразу показує, чи є група...ping відповідає наміру, а потім пропонує дужки, які його виправляють.

Так. INTERSECT та EXCEPT часто переписуються як внутрішнє з'єднання або речення NOT EXISTS, що може працювати краще. Порівняйте плани виконання, перш ніж застосовувати переписування.

Порівняння будь-чого з NULL повертає невідоме значення, а не значення «true» або «false», тому рядок відфільтровується. Використовуйте IS NULL та IS NOT NULL замість оператора дорівнює.

Підсумуйте цей пост за допомогою: