1.1 Liste des fonctions conditionnelles
Le langage SQL a une liste de fonctions qui sont quelque peu similaires à l'opérateur if-else
en switch
Java.
Il y a 4 fonctions de ce type au total :
Les fonctions | Description | |
---|---|---|
1 | CAS | commutateur analogique |
2 | SI() | Un analogue de l'opérateur ternaire ou if-else |
3 | IFNULL() | analogue de if-else |
4 | NULLIF() | analogue de if-else |
Les trois derniers en SQL sont représentés comme des fonctions et CASE
constituent un opérateur à part entière, nous le considérerons donc séparément à la toute fin.
1.2 Fonction SI()
Une fonction IF()
en SQL est quelque peu similaire à un opérateur ternaire en Java. En langage SQL, il prend 3 paramètres et ressemble à ceci :
IF (condition, true, false)
Trois expressions doivent être passées à la fonction IF
:
- une condition qui est testée pour la vérité;
- une expression renvoyée lorsque la condition est vraie ;
- une expression renvoyée lorsque la condition est fausse.
Ci-dessous, je vais donner quelques exemples pour faciliter la compréhension de son fonctionnement :
Demande | Résultat | |
---|---|---|
1 | CHOISIR SI( 1>2 , 2, 3) | 3 |
2 | CHOISIR SI( 1<2 , 'oui', 'non') | 'Oui' |
3 | CHOISIR SI( STRCMP('test','test1' ), 'non', 'oui') | 'Non' |
1.3 Fonction IFNULL() et NULLIF()
Il existe également deux modifications de la fonction IF()
.
La première modification est la fonction IFNULL()
. Il ne prend que deux valeurs :
IFNULL (expression 1, expression 2)
Si expression1 n'est pas égal à NULL
, alors la fonction renverra expression1 . Si expression1 IS NULL,
alors la fonction renverra expression2 . L'essence est la substitution de la valeur par défaut lorsque le champ est égal à NULL
.
La deuxième modification de la fonction IF
est la fonction NULLIF()
, elle prend également deux valeurs :
NULLIF (expression 1, expression 2)
Cela fonctionne dans le sens inverse :
- si expression1 est égale à expression2 , alors la fonction renvoie
NULL
; - si les expressions ne sont pas égales, alors expression1 est retournée .