Снежинка SPLIT_PART Функция не возвращает нулевые значения - PullRequest
0 голосов
/ 24 февраля 2020

Ниже приведен пример данных в файле JSON

'Desktop :: ab c: voip :: GET STARTED' как Col1

Когда я запускаю приведенный ниже запрос в Снежинка, значение для second_value отображается пустым вместо NULL Value. Как я могу получить значение NULL для этого образца данных

select  'Desktop::abc:voip::GET STARTED' as Col1
        split_part($1:Col1 :: String, ':', 1) as First_Value,
        split_part($1:Col1 :: String, ':', 2)  as Second_Value,
        split_part($1:Col1 :: String, ':', 3) as Third_Value,
        split_part($1:Col1 :: String, ':', 4) as Fourth_Value;

Вывод, как показано ниже

enter image description here

1 Ответ

2 голосов
/ 24 февраля 2020

Вы можете привести строки нулевой длины к NULLS с помощью NULLIF (). Например:

select  'Desktop::abc:voip::GET STARTED' as Col1,
NULLiF(split_part(Col1 :: String, ':', 1),'') as First_Value,
NULLiF(split_part(Col1 :: String, ':', 2),'') as Second_Value,
NULLiF(split_part(Col1 :: String, ':', 3),'') as Third_Value,        
NULLiF(split_part(Col1 :: String, ':', 4),'') as Fourth_Value
...