decode (key) 函数

适用于:勾选“是” Databricks SQL 勾选“是” Databricks Runtime

返回与键匹配的值。 decode expr与每个keyN匹配项进行比较,并返回第一个匹配项的对应valueN项(如键值查找或开关)。 如果没有键匹配项,则当提供时返回 defValue ,否则 NULL返回 。

语法

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

论点

  • expr:任何可比较类型的表达式。
  • keyN:一个与 expr 的类型匹配的表达式。
  • valueN:与 和其他 defValue 共享valueN的表达式。
  • defValue:与 共享valueN的可选表达式。

返回

结果属于 valueNdefValue

该函数返回首个 valueN ,其中 keyN 匹配 expr。 对于此函数,NULL 匹配 NULL。 如果没有 keyN 匹配 expr,则返回 defValue(若存在)。 如果未指定 defValue,则结果为 NULL

示例

-- 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