Delen via


decode (sleutel) functie

Van toepassing op:vinkje als ja aan Databricks SQL vinkje als ja aan Databricks Runtime

Retourneert de waarde die overeenkomt met de sleutel. decodevergelijkt met elke keyN op volgorde en retourneert expr de corresponderende valueN voor de eerste overeenkomst (zoals een zoekactie voor sleutelwaarden of switch). Als er geen sleutel overeenkomt, wordt deze geretourneerd defValue wanneer deze is opgegeven, anders NULL.

Syntaxis

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

Argumenten

  • expr: Elke expressie van een vergelijkbaar type.
  • keyN: Een expressie die overeenkomt met het type expr.
  • valueN: Een uitdrukking die een kleinst gemene type met defValue en de andere valueNs deelt.
  • defValue: Een optionele expressie die een minst gangbaar type deelt met valueN.

Retouren

Het resultaat is van het minst gangbare type van de valueN en defValue.

De functie retourneert de eerste valueN waarvoor keyN overeenkomt expr. Voor deze functie NULL komt overeen met NULL. Als keyN nergens overeenkomt met expr, wordt defValue geretourneerd als deze bestaat. Als er geen defValue is opgegeven, is het resultaat NULL.

Voorbeelden

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