Удаление или замена нулевого символа ascii <0x00> из столбца в Снежинке - PullRequest
1 голос
/ 28 апреля 2020

Есть ли способ удалить / заменить нулевой символ ascii <0x00> в снежинке?

SELECT 
   productname 
FROM 
   tableA

дает:

Bud Light<0x00>

, когда я рассматриваю его в возвышенном виде.

Я ищу доходность Bud Light

Ответы [ 2 ]

1 голос
/ 28 апреля 2020

В дополнение к тому, что сказал Грэг, вы можете использовать функцию trim, которая удалит только нулевые символы из начала и конца.

Пример, который вы можете запустить в рабочем наборе Snowflake

select 
   hex_decode_string('61626300') "4 char null terminated string", 
   len(hex_decode_string('61626300')) "Length before trim", 
   len(trim(hex_decode_string('61626300'), char('0'))) "Length after trim";

Ваш пример исправлен

SELECT 
   trim(productname, char('0')) 
FROM 
   tableA
1 голос
/ 28 апреля 2020

Если это ASCII ноль, вы можете заменить его следующим образом:

select replace(PRODUCTNAME, chr(0), '') as PRODUCTNAME from tableA;
...