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 .