FirebirdSQL logo

Exemple COALESCE

Example 1. Utilisation de la fonction COALESCE

Cet exemple tente d’utiliser toutes les données disponibles pour composer un nom complet. Le champ NICKNAME de la table PERSONS est sélectionné. S’il est NULL, la valeur du champ FIRSTNAME est prise. S’il est également NULL, la chaîne de caractères "Mr./Mrs.`" est utilisée. Ensuite le nom de famille (le champ `LASTNAME) est ajouté à la valeur de la fonction COALESCE. Notez que ce schéma ne fonctionne correctement que si les champs à sélectionner sont NULL ou non vides : si l’un d’eux est une chaîne vide, c’est ce qui sera renvoyé comme valeur de la fonction COALESCE.

SELECT
  COALESCE(PE.NICKNAME, PE.FIRSTNAME, 'Mr./Mrs.') ||
  ' ' || PE.LASTNAME AS FULLNAME
FROM PERSONS PE
Example 2. Utilisation de la fonction COALESCE avec des fonctions agrégées

Dans cet exemple, si la requête renvoie NULL lors du calcul de la somme, elle renverra 0.

SELECT coalesce (sum (q), 0)
FROM bills
WHERE ...
Voir aussi :

CASE.

DECODE()

Disponible en

DSQL, PSQL

Syntaxe
DECODE(<testexpr>,
  <expr1>, <result1>
  [<expr2>, <result2> …]
  [, <defaultresult>])

construction équivalente CASE

CASE <testexpr>
  WHEN <expr1> THEN <result1>
  [WHEN <expr2> THEN <result2> …]
  [ELSE <defaultresult>]
END
Table 1. paramètres de fonction DECODE
Paramètre Description

testexpr

Expressions de tout type compatible qui sont comparées à des expressions <expr1>, <expr2> …​ <exprN>

expr1, expr2, …​ exprN

Expressions de tout type compatible par rapport à l’expression <testexpr>.

result1, result2, …​ resultN

Retourne des expressions de n’importe quel type.

defaultresult

Une expression renvoyée si aucune des conditions n’a été remplie.

type de résultat de retour

dépend des types d’arguments d’entrée

Cette fonction est équivalente à la construction Simple CASE, dans laquelle une expression donnée est comparée à d’autres expressions avant qu’une correspondance soit trouvée.Le résultat est la valeur donnée après l’expression avec laquelle la correspondance est trouvée.Si aucune correspondance n’est trouvée, la valeur par défaut est retournée (si elle est, bien sûr, donnée — sinon NULL est retourné).

Caution

Une correspondance est équivalente à l’opérateur ‘=’, c’est-à-dire que si testexpr est défini à NULL alors il ne correspond à aucune des expr, même celles qui sont définies à NULL.