Функция to_varchar

Область применения:проверка помечены да Databricks SQL проверка помечены да Databricks Runtime 11.3 LTS и выше

Возвращает приведение expr к STRING использованию форматирования fmt.

В Databricks Runtime 14.0 и более ранних to_varchar версиях поддерживает expr числовые типы.

В Databricks SQL и Databricks Runtime 14.1 и более поздних to_varchar версиях также поддерживает expr типы DATE, TIMESTAMPи BINARY

to_varcharявляется синонимом to_char.

Синтаксис

to_varchar(expr, { numericFormat | datetimeFormat | stringFormat } )

numericFormat
  { ' [ S ] [ L | $ ]
      [ 0 | 9 | G | , ] [...]
      [ . | D ]
      [ 0 | 9 ] [...]
      [ L | $ ] [ PR | MI | S ] ' }

Аргументы

  • expr: выражение числовых типов, даты и времени илиSTRINGBINARY.
  • numericFormatSTRING: литерал, указывающий форматированные выходные данные для expr числовых типов.
  • datetimeFormatSTRING: литерал, указывающий форматированные выходные данные для expr типа datetime.
  • stringFormatSTRING: литерал, указывающий форматированные выходные данные для expr типаBINARY.

Возвраты

Результат STRING операции форматирования.

datetmeFormat может содержать шаблоны, указанные в шаблонах Datetime.

stringFormat может быть одним из следующих вариантов (без учета регистра):

  • "base64"

    Базовая строка 64.

  • "шестнадцатеричный"

    Строка в шестнадцатеричном формате.

  • 'utf-8'

    Входной двоичный файл декодируется в строку UTF-8.

numericFormat может включать следующие элементы (регистр не имеет значения):

  • 0 или 9

    Указывает ожидаемую цифру между 0 и 9. Последовательность цифр со значениями от 0 до 9 в строке форматирования соответствует последовательности цифр во входном значении. Это приводит к созданию результирующей строки с той же длиной, что и у соответствующей последовательности, в виде строки форматирования. Результирующая строка слева заполняется с начала нулями, если последовательность 0/9 содержит больше цифр, чем соответствующая часть десятичного значения, начинается с 0 и находится перед десятичной точкой. В противном случае она заполняется пробелами.

  • . или D

    Указывает позицию десятичной точки (необязательно, разрешено только один раз).

  • , или G

    Указывает позицию разделителя группирований (тысяч) (,). Справа и слева от каждого разделителя группирований должна находиться цифра 0 или 9.

  • $

    Указывает расположение знака валюты $. Этот символ может быть указан только один раз.

  • S или MI

    Указывает позицию знака "-" или "+" (необязательно, разрешено только один раз в начале или конце строки форматирования). Обратите внимание, что S выводит + для положительных значений, но MI выводит пробел.

  • PR

    Разрешено только в конце строки форматирования. Указывает, что результирующая строка будет заключена в угловые скобки, если входное значение отрицательное. ("<1>").

Если numExpr требует больше цифр, чем разрешает fmt, функция возвращает fmt с 0 и 9, замененные на # (например, '$###.##').

Если fmt имеет неправильный формат, Databricks SQL возвращает ошибку.

Эта функция является псевдонимом для to_varchar.

Примеры

> SELECT to_varchar(454, '999');
 454

> SELECT to_varchar(454, '000.00');
 454.00

> SELECT to_varchar(12454, '99,999');
 12,454

> SELECT to_varchar(78.12, '$99.99');
 $78.12

> SELECT to_varchar(-12454.8, '99,999.9S');
 12,454.8-

> SELECT to_varchar(12454.8, '99,999.9S');
 12,454.8+

> SELECT '>' || to_varchar(123, '00000.00') || '<';
 >00123.00<

> SELECT '>' || to_varchar(123, '99999.99') || '<';
 >  123.00<

> SELECT to_varchar(1.1, '99');
 ##

> SELECT to_varchar(111.11, '99.9');
 ##.#

> SELECT to_varchar(111.11, '$99.9');
 $##.#

> SELECT to_varchar(date'2016-04-08', 'y');
 2016

> SELECT to_varchar(x'537061726b2053514c', 'base64');
 U3BhcmsgU1FM

> SELECT to_varchar(x'537061726b2053514c', 'hex');
 537061726B2053514C

> SELECT to_varchar(encode('abc', 'utf-8'), 'utf-8');
 abc

> SELECT to_varchar(111, 'wrong');
 Error: 'wrong' is a malformed format.