SAP HANA - SQL-Ausdrücke
Ein Ausdruck wird verwendet, um eine Klausel auszuwerten, um Werte zurückzugeben. Es gibt verschiedene SQL-Ausdrücke, die in HANA verwendet werden können -
- Fallausdrücke
- Funktionsausdrücke
- Aggregierte Ausdrücke
- Unterabfragen in Ausdrücken
Fallausdruck
Dies wird verwendet, um mehrere Bedingungen in einem SQL-Ausdruck zu übergeben. Es ermöglicht die Verwendung der IF-ELSE-THEN-Logik ohne Verwendung von Prozeduren in SQL-Anweisungen.
Beispiel
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;
Diese Anweisung gibt count1, count2, count3 mit einem ganzzahligen Wert gemäß der übergebenen Bedingung zurück.
Funktionsausdrücke
Funktionsausdrücke umfassen in SQL integrierte Funktionen, die in Ausdrücken verwendet werden.
Aggregierte Ausdrücke
Aggregatfunktionen werden verwendet, um komplexe Berechnungen wie Summe, Prozentsatz, Min, Max, Anzahl, Modus, Median usw. durchzuführen. Der Aggregatausdruck verwendet Aggregatfunktionen, um einen einzelnen Wert aus mehreren Werten zu berechnen.
Aggregate Functions- Summe, Anzahl, Minimum, Maximum. Diese werden auf Messwerte (Fakten) angewendet und sind immer einer Dimension zugeordnet.
Zu den allgemeinen Aggregatfunktionen gehören -
- Durchschnitt ()
- Anzahl ()
- Maximum ()
- Median ()
- Minimum ()
- Modus ()
- Summe ()
Unterabfragen in Ausdrücken
Eine Unterabfrage als Ausdruck ist eine Select-Anweisung. Wenn es in einem Ausdruck verwendet wird, gibt es eine Null oder einen einzelnen Wert zurück.
Eine Unterabfrage wird verwendet, um Daten zurückzugeben, die in der Hauptabfrage als Bedingung verwendet werden, um die abzurufenden Daten weiter einzuschränken.
Unterabfragen können mit den Anweisungen SELECT, INSERT, UPDATE und DELETE zusammen mit den Operatoren wie =, <,>,> =, <=, IN, ZWISCHEN usw. verwendet werden.
Es gibt einige Regeln, denen Unterabfragen folgen müssen -
Unterabfragen müssen in Klammern stehen.
Eine Unterabfrage kann nur eine Spalte in der SELECT-Klausel enthalten, es sei denn, die Hauptabfrage enthält mehrere Spalten für die Unterabfrage, um die ausgewählten Spalten zu vergleichen.
Ein ORDER BY kann nicht in einer Unterabfrage verwendet werden, obwohl die Hauptabfrage ein ORDER BY verwenden kann. Mit GROUP BY kann dieselbe Funktion wie mit ORDER BY in einer Unterabfrage ausgeführt werden.
Unterabfragen, die mehr als eine Zeile zurückgeben, können nur mit mehreren Wertoperatoren verwendet werden, z. B. dem IN-Operator.
Die SELECT-Liste darf keine Verweise auf Werte enthalten, die für ein BLOB, ARRAY, CLOB oder NCLOB ausgewertet werden.
Eine Unterabfrage kann nicht sofort in eine Set-Funktion eingeschlossen werden.
Der Operator BETWEEN kann nicht mit einer Unterabfrage verwendet werden. Der Operator BETWEEN kann jedoch innerhalb der Unterabfrage verwendet werden.
Unterabfragen mit der SELECT-Anweisung
Unterabfragen werden am häufigsten mit der SELECT-Anweisung verwendet. Die grundlegende Syntax lautet wie folgt:
Beispiel
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 |
+----+----------+-----+---------+----------+