SAP HANA - Espressioni SQL

Un'espressione viene utilizzata per valutare una clausola per restituire valori. Esistono diverse espressioni SQL che possono essere utilizzate in HANA:

  • Espressioni di casi
  • Espressioni di funzioni
  • Espressioni aggregate
  • Sottoquery nelle espressioni

Case Expression

Viene utilizzato per passare più condizioni in un'espressione SQL. Consente l'uso della logica IF-ELSE-THEN senza utilizzare procedure nelle istruzioni SQL.

Esempio

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;

Questa istruzione restituirà count1, count2, count3 con un valore intero secondo la condizione passata.

Espressioni di funzioni

Le espressioni di funzione coinvolgono le funzioni incorporate di SQL da utilizzare nelle espressioni.

Espressioni aggregate

Le funzioni aggregate vengono utilizzate per eseguire calcoli complessi come Somma, Percentuale, Min, Max, Conteggio, Modalità, Mediana, ecc. Espressione aggregata utilizza le funzioni Aggregate per calcolare un singolo valore da più valori.

Aggregate Functions- Somma, Conteggio, Minimo, Massimo. Questi vengono applicati ai valori di misura (fatti) ed è sempre associato a una dimensione.

Le funzioni aggregate comuni includono:

  • Media ()
  • Contare ()
  • Massimo ()
  • Mediana ()
  • Minimo ()
  • Modalità ()
  • Somma ()

Sottoquery nelle espressioni

Una sottoquery come espressione è un'istruzione Select. Quando viene utilizzato in un'espressione, restituisce uno zero o un valore singolo.

Una sottoquery viene utilizzata per restituire i dati che verranno utilizzati nella query principale come condizione per limitare ulteriormente i dati da recuperare.

Le sottoquery possono essere utilizzate con le istruzioni SELECT, INSERT, UPDATE e DELETE insieme a operatori come =, <,>,> =, <=, IN, BETWEEN ecc.

Ci sono alcune regole che le sottoquery devono seguire:

  • Le sottoquery devono essere racchiuse tra parentesi.

  • Una sottoquery può avere solo una colonna nella clausola SELECT, a meno che non siano presenti più colonne nella query principale per la sottoquery per confrontare le colonne selezionate.

  • Non è possibile utilizzare un ORDER BY in una sottoquery, sebbene la query principale possa utilizzare un ORDER BY. GROUP BY può essere utilizzato per eseguire la stessa funzione ORDER BY in una sottoquery.

  • Le sottoquery che restituiscono più di una riga possono essere utilizzate solo con più operatori di valore, come l'operatore IN.

  • L'elenco SELECT non può includere riferimenti a valori che restituiscono un BLOB, ARRAY, CLOB o NCLOB.

  • Una sottoquery non può essere immediatamente racchiusa in una funzione set.

  • L'operatore BETWEEN non può essere utilizzato con una sottoquery; tuttavia, l'operatore BETWEEN può essere utilizzato all'interno della sottoquery.

Sottoquery con l'istruzione SELECT

Le sottoquery vengono utilizzate più di frequente con l'istruzione SELECT. La sintassi di base è la seguente:

Esempio

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 |
+----+----------+-----+---------+----------+