try_to_number
기능
적용 대상: Databricks SQL Databricks Runtime 11.3 LTS 이상
expr
서식을 사용하는 DECIMAL로 fmt
캐스트를 반환하고, NULL
이 형식과 일치하지 않는 경우에는 expr
을 반환합니다.
구문
try_to_number(expr, fmt)
fmt
{ ' [ MI | S ] [ L | $ ]
[ 0 | 9 | G | , ] [...]
[ . | D ]
[ 0 | 9 ] [...]
[ L | $ ] [ PR | MI | S ] ' }
인수
-
expr
: 숫자를 나타내는 STRING 식입니다.expr
에는 선행 또는 후행 공백이 포함될 수 있습니다. -
fmt
:expr
의 올바른 형식을 지정하는 STRING 리터럴입니다.
반품
DECIMAL(p, s) wherep
총 자릿수(0
또는 9
)이며, s
소수점 뒤의 자릿수이거나 소수점 뒤의 숫자가 없는 경우 0입니다.
fmt
는 다음 요소를 포함할 수 있습니다(대/소문자를 구분하지 않음).
0
또는9
0
과9
사이의 예상 숫자를 지정합니다. 소수점 왼쪽의0
은expr
에 적어도 많은 숫자가 있어야 함을 나타냅니다. 선행9
는expr
이 이러한 숫자를 생략할 수 있음을 나타냅니다.expr
은 소수점 왼쪽에 허용되는 자릿수보다 크지 않아야 합니다.10진수 오른쪽의 숫자는
expr
에 지정된fmt
의 소수점 오른쪽에 있을 수 있는 최대 자릿수를 나타냅니다..
또는D
소수점 위치를 지정합니다.
expr
은 소수점을 포함할 필요가 없습니다.,
또는G
,
그룹화(천 단위) 구분 기호의 위치를 지정합니다. 각 그룹화 구분 기호의 왼쪽과 오른쪽에0
또는9
가 있어야 합니다.expr
은 숫자의 크기와 관련된 그룹화 구분 기호와 일치해야 합니다.L
또는$
$
통화 기호의 위치를 지정합니다. 이 문자는 한 번만 지정할 수 있습니다.S
또는MI
S
에는 선택적 '+' 또는 '-' 기호의 위치를 지정하고MI
에만 '-'를 지정합니다. 이 지시문은 한 번만 지정할 수 있습니다.PR
expr
이 래핑하는 꺾쇠괄호(<1>
)를 사용하는 음수를 나타냄을 지정합니다.
expr
에 0
~9
또는 fmt
에 허용되는 문자 이외의 문자가 포함된 경우 NULL
이 반환됩니다.
엄격한 의미 체계의 경우 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 try_to_number('-$12,345.67', 'S$999,099.99');
-12345.67
-- Plus is optional, and so are fractional digits.
> SELECT try_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 try_to_number('$045', 'S$999,099.99');
45.00
-- Using brackets to denote negative values
> SELECT try_to_number('<1234>', '999999PR');
-1234