decode(字元集)函式

適用於:核取記號為「是」Databricks SQL 核取記號為「是」Databricks Runtime

使用字元集編碼 expr,將二進位 charSet 轉譯為字元串。

語法

decode(expr, charSet)

引數

  • exprBINARY 表達式在 charset 中被編碼。
  • charSetSTRING 運算式。

退貨

STRING

如果 charSet 不是支援的編碼,Azure Databricks 會INVALID_PARAMETER_VALUE。CHARSET

如果 expr 包含在 charSet 中無效的位元組,Azure Databricks 會MALFORMED_CHARACTER_CODING

支援下列字元集編碼方式(不區分大小寫):

  • 'US-ASCII':七位 ASCII、ISO646-US。
  • 'ISO-8859-1':ISO 拉丁字母 1,ISO-LATIN-1。
  • 'UTF-8':八位UCS轉換格式。
  • 'UTF-16BE':16 位 UCS 轉換格式,大端序。
  • 'UTF-16LE':16 位 UCS 轉換格式,小到尾位元組順序。
  • 'UTF-16':十六位元 UCS 轉換格式,位元組順序由可選的位元組順序標記來識別。

常見錯誤條件

範例

-- Wrap encode in hex to normalize UI dependent BINARY output.
> SELECT hex(encode('Spark SQL', 'UTF-16'));
 FEFF0053007000610072006B002000530051004C

> SELECT hex(encode('Spark SQL', 'US-ASCII'));
537061726B2053514C

> SELECT decode(X'FEFF0053007000610072006B002000530051004C', 'UTF-16')
 Spark SQL

-- 0xFF is not valid US-ASCII.
> SELECT decode(x'FF', 'US-ASCII');
  Error: MALFORMED_CHARACTER_CODING