关于Snowflake中仅传两参数的REPLACE函数作用的技术问询
Snowflake SQL代码解释与REPLACE函数疑问解答
代码作用
这段SQL从名为blah的表(或视图)里查询数据,具体做了两件事:
- 先把表中所有原有字段都查出来(
select *) - 额外生成三个清洗后的新字段:
Name:对原字段ab.NAME做清洗,去掉里面的连续双引号("")Type:对原字段ab.CATEGORY_TYPE做清洗,去掉里面的连续双引号("")Status:对原字段ab.STATUS_ID做清洗,去掉里面的连续双引号("")
REPLACE函数参数疑问解答
你提到的三参数语法REPLACE(Subject, Pattern, Replacements)是Snowflake REPLACE的完整写法,但它支持省略第三个参数的简化用法:
- 当只传前两个参数时,第三个参数默认是空字符串(
'') - 所以代码里的
replace(ab.NAME,'""')等价于replace(ab.NAME,'""',''),实际作用是把字段中所有匹配到的""直接删除,并不是没有效果。
内容的提问来源于stack exchange,提问作者SamG
相关产品推荐
相关产品推荐

