Udostępnij za pośrednictwem


Funkcja to_varchar

Dotyczy: zaznacz pole wyboru oznaczone jako tak Databricks SQL zaznacz pole wyboru oznaczone jako tak Databricks Runtime 11.3 LTS i nowsze

Zwraca expr rzutowanie do STRING przy użyciu formatowania fmt.

W środowisku Databricks Runtime 14.0 i starszych to_varchar wersjach obsługuje expr typy liczbowe.

W usługach Databricks SQL i Databricks Runtime 14.1 i nowszych to_varchar obsługiwane expr są również typy DATE, TIMESTAMPi BINARY

to_varcharjest synonimem to_char.

Składnia

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

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

Argumenty

  • expr: wyrażenie typu liczbowe, data/godzina, STRINGlub BINARY.
  • numericFormatSTRING: literał określający sformatowane dane wyjściowe dla expr typu liczbowego.
  • datetimeFormatSTRING: literał określający sformatowane dane wyjściowe typu expr data/godzina.
  • stringFormatSTRING: literał określający sformatowane dane wyjściowe dla expr typu BINARY.

Zwraca

Reprezentująca STRING wynik operacji formatowania.

datetmeFormat może zawierać wzorce określone w wzorcach datetime.

stringFormat może być jedną z następujących wartości (bez uwzględniania wielkości liter):

  • "base64"

    Podstawowy ciąg 64.

  • "szesnastkowy"

    Ciąg w formacie szesnastkowym.

  • "utf-8"

    Wejściowy plik binarny jest dekodowany do ciągu UTF-8.

numericFormat może zawierać następujące elementy (bez uwzględniania wielkości liter):

  • 0 lub 9

    Określa oczekiwaną cyfrę z zakresu od 0 do 9. Sekwencja cyfr z wartościami z zakresu od 0 do 9 w ciągu formatu pasuje do sekwencji cyfr w wartości wejściowej. Spowoduje to wygenerowanie ciągu wynikowego o tej samej długości co odpowiednia sekwencja co ciąg formatu. Ciąg wynikowy jest w lewo wypełniony zerami, jeśli sekwencja 0/9 składa się z większej liczby cyfr niż zgodna część wartości dziesiętnej, zaczyna się od 0 i znajduje się przed punktem dziesiętnym. W przeciwnym razie jest wypełniony spacjami.

  • . lub D

    Określa położenie punktu dziesiętnego (opcjonalnie, dozwolone tylko raz).

  • , lub G

    Określa położenie separatora grupowania (tysięcy) (,). Musi istnieć od 0 lub 9 do lewej i po prawej stronie każdego separatora grupowania.

  • $

    Określa lokalizację znaku waluty $. Ten znak można określić tylko raz.

  • S lub MI

    Określa położenie znaku "-" lub "+" (opcjonalnie, dozwolone tylko raz na początku lub na końcu ciągu formatu). Należy pamiętać, że S drukuje wartości dodatnie + , ale MI drukuje miejsce.

  • PR

    Dozwolone tylko na końcu ciągu formatu; określa, że ciąg wynikowy będzie owinięty nawiasami kątowymi, jeśli wartość wejściowa jest ujemna. ('<1>').

Jeśli numExpr funkcja wymaga większej liczby cyfr niż fmt jest to możliwe, funkcja zwraca wartość z wartością i 9 zastąpioną fmt # wartością 0 (np'$###.##'. ).

Jeśli fmt usługa Databricks sql jest nieprawidłowo sformułowana, zwraca błąd.

Ta funkcja jest aliasem dla to_varchar.

Przykłady

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