Funktionen to_varchar
Gäller för: Databricks SQL Databricks Runtime 11.3 LTS och senare
Returnerar expr
cast till STRING
med formatering fmt
.
I Databricks Runtime 14.0 och tidigare to_varchar
stöds expr
numeriska typer.
I Databricks SQL och Databricks Runtime 14.1 och senare to_varchar
har även stöd expr
för typer DATE
, TIMESTAMP
och BINARY
to_varchar
är en synonym för to_char.
Syntax
to_varchar(expr, { numericFormat | datetimeFormat | stringFormat } )
numericFormat
{ ' [ S ] [ L | $ ]
[ 0 | 9 | G | , ] [...]
[ . | D ]
[ 0 | 9 ] [...]
[ L | $ ] [ PR | MI | S ] ' }
Argument
expr
: Ett uttryck av typen numeriskt, datetime,STRING
ellerBINARY
.numericFormat
: EnSTRING
literal som anger formaterade utdata förexpr
av typen numerisk.datetimeFormat
: EnSTRING
literal som anger formaterade utdata förexpr
av typen datetime.stringFormat
: EnSTRING
literal som anger formaterade utdata förexpr
av typenBINARY
.
Returer
En STRING
som representerar resultatet av formateringsåtgärden.
datetmeFormat
kan innehålla de mönster som anges i Datetime-mönster.
stringFormat
kan vara något av följande (skiftlägesokänsligt):
"base64"
En base 64-sträng.
"hex"
En sträng i hexadecimalt format.
"utf-8"
Indatabinärfilen avkodas till UTF-8-strängen.
numericFormat
kan innehålla följande element (skiftlägesokänsligt):
0
eller9
Anger en förväntad siffra mellan 0 och 9. En sekvens med siffror med värden mellan 0 och 9 i formatsträngen matchar en sekvens med siffror i indatavärdet. Detta genererar en resultatsträng med samma längd som motsvarande sekvens som formatsträngen. Resultatsträngen är vänster vadderad med nollor om 0/9-sekvensen innehåller fler siffror än den matchande delen av decimalvärdet, börjar med 0 och är före decimaltecknet. Annars är den vadderad med blanksteg.
.
ellerD
Anger decimaltecknets position (valfritt, tillåts bara en gång).
,
ellerG
Anger positionen för grupperingsavgränsaren (tusentals) (,). Det måste finnas 0 eller 9 till vänster och höger om varje grupperingsavgränsare.
$
Anger platsen för valutatecknet $ . Det här tecknet kan bara anges en gång.
S
ellerMI
Anger positionen för ett "-" eller "+"-tecken (valfritt, tillåts bara en gång i början eller slutet av formatsträngen). Observera att
S
skrivs+
ut för positiva värden menMI
skriver ut ett blanksteg.PR
Tillåts endast i slutet av formatsträngen. anger att resultatsträngen kommer att omslutas av vinkelparenteser om indatavärdet är negativt. ('<1>').
Om numExpr
kräver fler siffror än fmt
vad som tillåts returnerar fmt
funktionen med 0
och 9
ersätts med #
(t.ex '$###.##'
. ).
Om fmt
är felaktigt databricks SQL returnerar ett fel.
Den här funktionen är ett alias för to_varchar.
Exempel
> 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.