Partager via


decode (clé), fonction

S’applique à :case marquée oui Databricks SQL coche marquée oui Databricks Runtime

Retourne la valeur correspondant à la clé. decode expr compare à chacun keyN d’eux dans l’ordre et retourne le correspondant valueN pour la première correspondance (comme une recherche clé-valeur ou un commutateur). Si aucune clé ne correspond, elle retourne defValue lorsqu’elle est fournie, sinon NULL.

Syntaxe

decode(expr, { key1, value1 } [, ...] [, defValue])

Arguments

  • expr : toute expression d’un type comparable.
  • keyN : expression qui correspondait au type de expr.
  • valueN : expression qui partage un type moins commun avec defValue et les autres éléments valueN.
  • defValue : expression facultative qui partage un type moins commun avec valueN.

Retours

Le résultat est du type le moins commun de valueN et defValue.

La fonction retourne le premier élément valueN pour lequel keyN correspond à expr. Pour cette fonction, NULL correspond à NULL. Si aucun élément keyN ne correspond à expr, defValue est retourné s’il existe. Si aucun élément defValue n’a été spécifié, le résultat est NULL.

Exemples

-- Compare expr (5) to keys in order: 6? No. 5? Yes. Return the value for 5, which is 'SQL'.
> SELECT decode(5, 6, 'Spark', 5, 'SQL', 4, 'rocks');
 SQL

-- NULL matches NULL in decode. expr is NULL; the second key is NULL, so that pair matches. Return 'SQL'.
> SELECT decode(NULL, 6, 'Spark', NULL, 'SQL', 4, 'rocks');
 SQL

-- No key matches 7 (not 6, not 5). No fourth key-value pair, so defValue 'rocks' is returned.
> SELECT decode(7, 6, 'Spark', 5, 'SQL', 'rocks');
 rocks