Postgresql替换功能

时间:2014-11-28 10:15:39

标签: sql postgresql replace

当我选择这样的

select
replace(replace(t.field,'{0}',t.parameter01), '{1}', t.parameter02)
from table t

即使t.field包含没有任何占位符的文本,我也会获得null结果。有人可以解释为什么会这样吗?

1 个答案:

答案 0 :(得分:1)

我已经想通了。如果replace函数的第三个参数为null,则结果将为null,尽管第二个参数与第一个参数中的任何内容都不匹配。解决方法是将第三个参数的值替换为null:

select 
replace(t.field, t.parameter01, coalesce(t.parameter02, ''))
from table t