1.1 Liste des fonctions conditionnelles
Le langage SQL a une liste de fonctions qui sont quelque peu similaires à l'opérateur if-elseen switchJava.
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 CASEconstituent 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 IFest 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 .
GO TO FULL VERSION