Freigeben über


decode (Schlüssel) Funktion

Gilt für:durch Häkchen mit „Ja“ markiert Databricks SQL Häkchen gesetzt ja Databricks Runtime

Gibt den Wert zurück, der dem Schlüssel entspricht. decode Vergleicht expr in der keyN reihenfolge und gibt die entsprechende valueN für die erste Übereinstimmung (z. B. einen Schlüsselwert-Nachschlagevorgang oder Schalter) zurück. Wenn keine Schlüssel übereinstimmen, wird diese zurückgegeben defValue , wenn angegeben, andernfalls NULL.

Syntax

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

Argumente

  • expr: Ein Ausdruck eines vergleichbaren Typs.
  • keyN: Ein Ausdruck, der mit dem Typ von expr übereinstimmt.
  • valueN: Ein Ausdruck, der einen geringsten gemeinsamen Typ mit defValue und den anderen valueN-Ausdrücken teilt.
  • defValue: Ein optionaler Ausdruck, der einen geringsten gemeinsamen Typ mit valueN teilt.

Gibt zurück

Das Ergebnis weist den geringsten gemeinsamen Typ von valueN und defValue auf.

Die Funktion gibt den ersten valueN-Wert zurück, für den keyN mit expr übereinstimmt. Für diese Funktion entspricht NULLNULL. Wenn keine Übereinstimmung zwischen keyN und expr vorhanden ist, wird defValue zurückgegeben (falls vorhanden). Wenn defValue nicht angegeben wurde, ist das Ergebnis NULL.

Beispiele

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