sql - Postgresql 替换函数

标签 sql postgresql replace

当我做这样的选择时

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

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

最佳答案

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

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

关于sql - Postgresql 替换函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27186413/

相关文章:

mysql - 列中的 CONCAT 搜索

sql - 违反 - 找不到父键错误

xml - 使用 <![CDATA]]> 和 Postgresql 写入未格式化的字符串

postgresql - 如何在我自己的代码中执行与 IntelliJ 数据库 SSH 隧道等效的操作?

html - 复制带有一些变化的行的正则表达式,镜像

javascript - 用于删除紧随非数字后面的零的正则表达式

java - PostgreSQL 函数不存在

sql - 在 MS Access 中将 2 个相似字段合并为 1 个

postgresql - 更改函数以进行额外的争论/添加参数

javascript - 用图像替换文本 - JavaScript (getElementsByClass)