从 Snowflake 的列中删除或替换 ascii 空字符 <0x00>
Posted
技术标签:
【中文标题】从 Snowflake 的列中删除或替换 ascii 空字符 <0x00>【英文标题】:Removing or replacing ascii null character <0x00> from column in Snowflake 【发布时间】:2020-04-28 02:29:05 【问题描述】:有没有办法可以删除/替换雪花中的 ascii 空字符 ?
SELECT
productname
FROM
tableA
产量:
Bud Light<0x00>
当我以崇高的态度回顾它时。
我只希望得到Bud Light
【问题讨论】:
【参考方案1】:如果是ASCII null,可以这样替换:
select replace(PRODUCTNAME, chr(0), '') as PRODUCTNAME from tableA;
【讨论】:
【参考方案2】:除了 Greg 所说的之外,您还可以使用 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
【讨论】:
以上是关于从 Snowflake 的列中删除或替换 ascii 空字符 <0x00>的主要内容,如果未能解决你的问题,请参考以下文章