SAP HANA - Expressions SQL

Une expression est utilisée pour évaluer une clause pour renvoyer des valeurs. Il existe différentes expressions SQL qui peuvent être utilisées dans HANA -

  • Expressions de cas
  • Expressions de fonction
  • Expressions agrégées
  • Sous-requêtes dans les expressions

Expression de cas

Ceci est utilisé pour passer plusieurs conditions dans une expression SQL. Il permet l'utilisation de la logique IF-ELSE-THEN sans utiliser de procédures dans les instructions SQL.

Exemple

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;

Cette instruction renverra count1, count2, count3 avec une valeur entière selon la condition passée.

Expressions de fonction

Les expressions de fonction impliquent des fonctions SQL intégrées à utiliser dans les expressions.

Expressions agrégées

Les fonctions d'agrégation sont utilisées pour effectuer des calculs complexes tels que Somme, Pourcentage, Min, Max, Nombre, Mode, Médiane, etc. L'expression d'agrégation utilise les fonctions d'agrégation pour calculer une valeur unique à partir de plusieurs valeurs.

Aggregate Functions- Somme, nombre, minimum, maximum. Ceux-ci sont appliqués aux valeurs de mesure (faits) et sont toujours associés à une dimension.

Les fonctions d'agrégation courantes incluent -

  • Moyenne ()
  • Compter ()
  • Maximum ()
  • Médiane ()
  • Le minimum ()
  • Mode ()
  • Somme ()

Sous-requêtes dans les expressions

Une sous-requête en tant qu'expression est une instruction Select. Lorsqu'il est utilisé dans une expression, il renvoie un zéro ou une valeur unique.

Une sous-requête est utilisée pour renvoyer des données qui seront utilisées dans la requête principale comme condition pour restreindre davantage les données à récupérer.

Les sous-requêtes peuvent être utilisées avec les instructions SELECT, INSERT, UPDATE et DELETE avec les opérateurs tels que =, <,>,> =, <=, IN, BETWEEN etc.

Il y a quelques règles que les sous-requêtes doivent suivre -

  • Les sous-requêtes doivent être placées entre parenthèses.

  • Une sous-requête ne peut avoir qu'une seule colonne dans la clause SELECT, sauf si plusieurs colonnes se trouvent dans la requête principale pour que la sous-requête compare ses colonnes sélectionnées.

  • Un ORDER BY ne peut pas être utilisé dans une sous-requête, bien que la requête principale puisse utiliser un ORDER BY. Le GROUP BY peut être utilisé pour exécuter la même fonction que ORDER BY dans une sous-requête.

  • Les sous-requêtes qui renvoient plusieurs lignes ne peuvent être utilisées qu'avec plusieurs opérateurs de valeur, tels que l'opérateur IN.

  • La liste SELECT ne peut pas inclure de références à des valeurs évaluées en BLOB, ARRAY, CLOB ou NCLOB.

  • Une sous-requête ne peut pas être immédiatement incluse dans une fonction d'ensemble.

  • L'opérateur BETWEEN ne peut pas être utilisé avec une sous-requête; cependant, l'opérateur BETWEEN peut être utilisé dans la sous-requête.

Sous-requêtes avec l'instruction SELECT

Les sous-requêtes sont le plus souvent utilisées avec l'instruction SELECT. La syntaxe de base est la suivante -

Exemple

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