to_number
関数
適用対象: Databricks SQL
Databricks Runtime 11.3 LTS 以降
書式設定 fmt
を使用して DECIMAL にキャストされる expr
を返します。
構文
to_number(expr, fmt)
fmt
{ ' [ MI | S ] [ L | $ ]
[ 0 | 9 | G | , ] [...]
[ . | D ]
[ 0 | 9 ] [...]
[ L | $ ] [ PR | MI | S ] ' }
引数
expr
: 数値を表す STRING 式。expr
には、先頭または末尾の空白が含まれる場合があります。fmt
:expr
の予期される形式を指定する文字列リテラル。
戻り値
DECIMAL(p、s)。この場合、p
は合計桁数 (0
または 9
) で、s
は、小数点以下の桁数です。ない場合は、0 になります。
fmt
には、次の要素を含めることができます (大文字と小文字は区別されません)。
0
または9
0
と9
の間で予期される桁を指定します。 小数点の左側の0
は、expr
に少なくともその桁数が必要であることを示します。 先行する9
は、expr
でこれらの桁は省略可能であることを示しています。expr
を、小数点の左側の桁数で許可されているよりも大きくすることはできません。小数点の右側の数は、
fmt
によって指定されている、expr
が小数点の右側に対して持つことができる最大桁数を示します。.
またはD
小数点の位置を指定します。
expr
には小数点を含める必要はありません。,
またはG
,
桁区切り記号 (1000 の位) の位置を指定します。 各桁区切り記号の左右には0
または9
がある必要があります。expr
は、数値のサイズに関連する桁区切り記号と一致している必要があります。L
または$
$
通貨記号の場所を指定します。 この文字は 1 回だけ指定できます。S
またはMI
S
に対してオプションの "+" または "-" 記号を指定します。MI
に対しては "-" のみです。 このディレクティブは、1 回だけ指定できます。PR
書式設定文字列の末尾にのみ使用できます。山かっこで囲んで (
<1>
)expr
が負の数値を示すことを指定します。
expr
に 0
から 9
以外の文字、または fmt
で許可されている以外の文字が含まれている場合は、エラーが返されます。
無効な expr
に対してエラーではなく NULL
を返すようにするには、try_to_number() を使用してください。
例
-- The format expects:
-- * an optional sign at the beginning,
-- * followed by a dollar sign,
-- * followed by a number between 3 and 6 digits long,
-- * thousands separators,
-- * up to two dight beyond the decimal point.
> SELECT to_number('-$12,345.67', 'S$999,099.99');
-12345.67
-- Plus is optional, and so are fractional digits.
> SELECT to_number('$345', 'S$999,099.99');
345.00
-- The format requires at least three digits.
> SELECT to_number('$45', 'S$999,099.99');
Error: Invalid number
-- The format requires at least three digits.
> SELECT try_to_number('$45', 'S$999,099.99');
NULL
-- The format requires at least three digits
> SELECT to_number('$045', 'S$999,099.99');
45.00
-- Using brackets to denote negative values
> SELECT to_number('<1234>', '999999PR');
-1234