Dela via


decode Nyckelfunktion

Gäller för:markerad ja Databricks SQL markerad ja Databricks Runtime

Returnerar värdet som matchar nyckeln. decode jämför med expr var och en keyN i ordning och returnerar motsvarande valueN för den första matchningen (till exempel en nyckel/värde-sökning eller växel). Om ingen nyckel matchar returneras defValue den när den tillhandahålls, annars NULL.

Syntax

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

Argumenten

  • expr: Alla uttryck av en jämförbar typ.
  • keyN: Ett uttryck som matchade typen av expr.
  • valueN: Ett uttryck som delar en minst vanlig typ med defValue och de andra valueNs.
  • defValue: Ett valfritt uttryck som delar en minst vanlig typ med valueN.

Returer

Resultatet är av den minst vanliga typen av valueN och defValue.

Funktionen returnerar den första valueN som keyN matchar expr. För den här funktionen NULL matchar NULL. Om ingen keyN matchar expr, returneras defValue om det finns. Om inget defValue har angetts är NULLresultatet .

Exempel

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