Snowflake中REPLACE函数在空值及无匹配场景下的行为咨询
SQL REPLACE函数两种场景的行为说明
你写的这条SQL:
select replace('abcd.efgh@Domain.com', 'Domain.com', 'ModifyDomain.com')
作用是把字符串里的Domain.com替换成ModifyDomain.com,对应你想要的“把邮箱的@Domain.com改成@ModifyDomain.com”的需求。针对你问的两种场景,结果如下:
原邮箱字段为NULL/空白:
- 如果是NULL值:REPLACE函数处理NULL时直接返回NULL,等于保留原NULL;
- 如果是空字符串(空白):因为找不到要替换的
Domain.com,所以返回空字符串,原空白值被保留。
原邮箱字段不包含
Domain.com模式:
REPLACE只会替换匹配到的子串,没找到匹配内容时,会原封不动返回原本的邮箱值,所以原邮箱会被完整保留。
内容的提问来源于stack exchange,提问作者Shruti
相关产品推荐
相关产品推荐

