SAP HANA - wyrażenia SQL
Wyrażenie służy do oceny klauzuli w celu zwrócenia wartości. Istnieją różne wyrażenia SQL, których można używać w HANA -
- Wyrażenia wielkości liter
- Wyrażenia funkcyjne
- Wyrażenia agregujące
- Podzapytania w wyrażeniach
Wyrażenie wielkości liter
Służy do przekazywania wielu warunków w wyrażeniu SQL. Pozwala na użycie logiki IF-ELSE-THEN bez stosowania procedur w instrukcjach SQL.
Przykład
SELECT COUNT( CASE WHEN sal < 2000 THEN 1 ELSE NULL END ) count1,
COUNT( CASE WHEN sal BETWEEN 2001 AND 4000 THEN 1 ELSE NULL END ) count2,
COUNT( CASE WHEN sal > 4000 THEN 1 ELSE NULL END ) count3 FROM emp;
Ta instrukcja zwróci count1, count2, count3 z wartością całkowitą zgodnie z przekazanym warunkiem.
Wyrażenia funkcyjne
Wyrażenia funkcyjne obejmują wbudowane funkcje SQL, które mają być używane w wyrażeniach.
Wyrażenia agregujące
Funkcje agregujące służą do wykonywania złożonych obliczeń, takich jak Suma, Procent, Min, Max, Liczba, Tryb, Mediana itp. Funkcja Aggregate Expression używa funkcji agregujących do obliczania pojedynczej wartości z wielu wartości.
Aggregate Functions- Suma, liczba, minimum, maksimum. Są one stosowane do wartości miar (faktów) i są zawsze związane z wymiarem.
Typowe funkcje agregujące obejmują -
- Średnia ()
- Liczba ()
- Maksymalna ()
- Mediana ()
- Minimalna ()
- Tryb ()
- Suma ()
Podzapytania w wyrażeniach
Podzapytanie jako wyrażenie to instrukcja Select. Gdy jest używany w wyrażeniu, zwraca zero lub pojedynczą wartość.
Podzapytanie służy do zwracania danych, które zostaną użyte w zapytaniu głównym jako warunek dalszego ograniczenia pobieranych danych.
Podzapytań można używać z instrukcjami SELECT, INSERT, UPDATE i DELETE wraz z operatorami takimi jak =, <,>,> =, <=, IN, BETWEEN itp.
Istnieje kilka zasad, których muszą przestrzegać podzapytania -
Podzapytania muszą być zawarte w nawiasach.
Podzapytanie może mieć tylko jedną kolumnę w klauzuli SELECT, chyba że w głównym zapytaniu dla podzapytania znajduje się wiele kolumn w celu porównania wybranych kolumn.
ORDER BY nie może być użyte w podzapytaniu, chociaż główne zapytanie może używać ORDER BY. Funkcji GROUP BY można użyć do wykonania tej samej funkcji, co ORDER BY w podzapytaniu.
Podkwerendy, które zwracają więcej niż jeden wiersz, mogą być używane tylko z wieloma operatorami wartości, takimi jak operator IN.
Lista SELECT nie może zawierać żadnych odniesień do wartości, których wynikiem jest BLOB, ARRAY, CLOB lub NCLOB.
Podzapytania nie można od razu zamknąć w funkcji zestawu.
Operator BETWEEN nie może być używany z podzapytaniem; jednak operator BETWEEN może być używany w podzapytaniu.
Podzapytania z instrukcją SELECT
Podkwerendy są najczęściej używane z instrukcją SELECT. Podstawowa składnia jest następująca -
Przykład
SELECT * FROM CUSTOMERS
WHERE ID IN (SELECT ID
FROM CUSTOMERS
WHERE SALARY > 4500) ;
+----+----------+-----+---------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+---------+----------+
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+---------+----------+