【问题标题】:Postgresql replace functionPostgresql 替换函数
【发布时间】:2015-01-26 23:31:54
【问题描述】:

当我做这样的选择时

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

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

【问题讨论】:

  • 添加 Postgres 版本。 e.parameter02 是谁??
  • "PostgreSQL 9.3.3"",编辑:它是一个t参数,一个没有值的char类型的列
  • 请给我们看一个完整的例子,包括样本数据 (insert into...)

标签: sql postgresql replace


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-25
    • 1970-01-01
    • 2020-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-25
    相关资源
    最近更新 更多