Что эквивалентно функции Digits in Snowflake? - PullRequest
0 голосов
/ 06 января 2020

Что такое Эквивалент функции Цифры в Снежинке? Любая помощь приветствуется.

Спасибо

Ответы [ 2 ]

1 голос
/ 06 января 2020

Если это digits() из DB2

Функция DIGITS возвращает символьную строку, представляющую абсолютное значение числа.

Тогда что-то вроде:

REPLACE(ABS(<yourcol>), '.', '')

Или:

ARRAY_TO_STRING(SPLIT(ABS(<yourcol>), '.'),'')

Если вам также нужны нули с левой подкладкой, нет способа напрямую определить точность десятичной дроби в снежинке. в вашем SQL, поэтому вам нужно будет указать c, насколько большой должна быть ваша выходная строка.

LPAD(REPLACE(ABS(<yourcol>), '.', ''), 10, '0')
0 голосов
/ 06 января 2020

Пожалуйста, попробуйте это:

SELECT TRY_TO_NUMBER('abcd');--NULL
SELECT TRY_TO_NUMBER('700000001020577');--700000001020577
SELECT TRY_TO_NUMBER('1234.56');--1234
SELECT TRY_TO_NUMBER('0.56');--0
SELECT TRY_TO_NUMBER('a12#$');--NULL

SELECT IFF(TRY_TO_NUMBER('1234') IS NULL,FALSE,TRUE) --TRUE
SELECT IFF(TRY_TO_NUMBER('abcd') IS NULL,FALSE,TRUE)--FALSE
...