当我选择这样的
时select
replace(replace(t.field,'{0}',t.parameter01), '{1}', t.parameter02)
from table t
即使t.field包含没有任何占位符的文本,我也会获得null结果。有人可以解释为什么会这样吗?
答案 0 :(得分:1)
我已经想通了。如果replace函数的第三个参数为null,则结果将为null,尽管第二个参数与第一个参数中的任何内容都不匹配。解决方法是将第三个参数的值替换为null:
select
replace(t.field, t.parameter01, coalesce(t.parameter02, ''))
from table t