Voici les expressions conditionnelles en SQL
- L'expression CASE : vous permet d'utiliser des instructions IF-THEN-ELSE sans avoir à invoquer de procédures.
-
Input: SELECT GREATEST('XYZ', 'xyz') from dual;>Output: GREATEST('XYZ', 'xyz') xyz>Explication: La valeur ASCII des petits alphabets est plus grande.
-
Input: SELECT GREATEST('XYZ', null, 'xyz') from dual; Output: GREATEST('XYZ', null, 'xyz') ->Explication: Puisque null est présent, null sera affiché en sortie (comme mentionné dans la description ci-dessus).
-
Input: SELECT IFNULL(1,0) FROM dual;>
Output: - 1>
Explication : Depuis, aucune expression n’est nulle.
-
Input: SELECT IFNULL(NULL,10) FROM dual; Output: -- 10>
Explication: Puisque expr1 est nul, expr2 est donc affiché.
installation de la torche
-
strong>Entrée : SELECT LEAST('XYZ', 'xyz') from dual ; Sortie : MOINS('XYZ', 'xyz') XYZ>Explication: La valeur ASCII des alphabets majuscules est plus petite.
-
Input: SELECT LEAST('XYZ', null, 'xyz') from dual; Output: LEAST('XYZ', null, 'xyz') ->Explication: Puisque null est présent, null sera affiché en sortie (comme mentionné dans la description ci-dessus).
Dans une expression CASE simple, le SQL recherche la première paire WHEN……THEN pour laquelle expr est égale à comparative_expr et renvoie return_expr. Si la condition ci-dessus n'est pas satisfaite, une clause ELSE existe, le SQL renvoie else_expr. Sinon, renvoie NULL.
Nous ne pouvons pas spécifier la valeur null littérale pour return_expr et else_expr. Toutes les expressions (expr, comparative_expr, return_expr) doivent être du même type de données.
Syntaxe:
CASE expr WHEN comparison_expr1 THEN return_expr1 [ WHEN comparison_expr2 THEN return_expr2 . . . WHEN comparison_exprn THEN return_exprn ELSE else_expr] END>
Exemple:
Input : SELECT first_name, department_id, salary, CASE department_id WHEN 50 THEN 1.5*salary WHEN 12 THEN 2.0*salary ELSE salary END 'REVISED SALARY' FROM Employee;>
Sortir :

Explication : Dans les instructions SQL ci-dessus, la valeur de Department_id est décodée. S'il est de 50, le salaire est multiplié par 1,5, s'il est de 12, le salaire est multiplié par 2, sinon il n'y a pas de changement de salaire. La fonction DECODE : facilite les enquêtes conditionnelles en effectuant le travail d'une instruction CASE ou IF-THEN-ELSE.
La fonction DECODE décode une expression d'une manière similaire à la logique IF-THEN-ELSE utilisée dans divers langages. La fonction DECODE décode l'expression après l'avoir comparée à chaque valeur de recherche. Si l'expression est identique à la recherche, le résultat est renvoyé.
Si la valeur par défaut est omise, une valeur nulle est renvoyée lorsqu'une valeur de recherche ne correspond à aucune des valeurs de résultat.
Syntaxe:
DECODE (col/expression, search1, result1 [, search2, result2,........,] [, default])>
Input : SELECT first_name, department_id, salary, DECODE(department_id, 50, 1.5*salary, 12, 2.0*salary, salary) 'REVISED SALARY' FROM Employee;>
Sortir :
Explication: Dans les instructions SQL ci-dessus, la valeur de Department_id est testée. S'il est de 50, le salaire est multiplié par 1,5, s'il est de 12, le salaire est multiplié par 2, sinon il n'y a pas de changement de salaire.
REMARQUE : comme les expressions CASE, COALESCE n'évaluera pas non plus les arguments à droite du premier argument non nul trouvé.
Syntaxe:
COALESCE( value [, ......] )>
Input: SELECT COALESCE(last_name, '- NA -') from Employee;>
Sortir:
Explication: - NA - sera affiché à l'endroit où le nom de famille est nul, sinon les noms de famille respectifs seront affichés. GREATEST : renvoie la plus grande valeur d'une liste d'un nombre quelconque d'expressions. La comparaison est sensible à la casse. Si les types de données de toutes les expressions de la liste ne sont pas identiques, toutes les expressions sont converties au type de données de la première expression à des fins de comparaison et si cette conversion n'est pas possible, SQL générera une erreur.
NOTE: Renvoie null si une expression de la liste est nulle.
Syntaxe:
GREATEST( expr1, expr2 [, .....] )>
Syntaxe:
IFNULL( expr1, expr2 )>
REMARQUE : comme les expressions CASE et COALESCE, IN n'évaluera pas non plus les arguments à droite du premier argument non nul trouvé.
Syntaxe:
WHERE column IN ( x1, x2, x3 [,......] )>
Input: SELECT * from Employee WHERE department_id IN(50, 12);>
Sortir:

Explication: Toutes les données des employés sont affichées avec l'ID de service 50 ou 12.
LEAST : renvoie la plus petite valeur d’une liste d’un nombre quelconque d’expressions. La comparaison est sensible à la casse. Si les types de données de toutes les expressions de la liste ne sont pas identiques, toutes les expressions restantes sont converties au type de données de la première expression à des fins de comparaison et si cette conversion n'est pas possible, SQL générera une erreur.REMARQUE : renvoie null si une expression de la liste est nulle.
Syntaxe:
LEAST( expr1, expr2 [, ......] )>
Syntaxe:
NULLIF( value1, value2 )>
Exemple:
Input: SELECT NULLIF(9995463931, contact_num) from Employee;>
Sortir:

Explication: NULL est affiché pour l'employé dont le numéro correspond au numéro donné. Pour le reste des employés, la valeur 1 est renvoyée.