PostgreSQL:如何在动态替换文本中使用REPLACE

时间:2019-12-12 17:36:16

标签: sql postgresql

我正在尝试使用带有简单模板字符串的download_urldataset表的每一行生成字符串REPLACE。每行的id应替换为模板字符串。

这是我在下面尝试过的方法。鉴于子查询中的id与外部查询相关,我认为这会起作用:

SELECT id,
       name,
       REPLACE('https://example.com/dataset/{id}/download/', '{id}', id) 
as download_url
FROM dataset;

但是我收到一条错误消息,表明不存在任何功能:

  

[42883]错误:函数replace(未知,未知,整数)不存在提示:没有函数与给定的名称和参数类型匹配。您可能需要添加显式类型转换。

1 个答案:

答案 0 :(得分:1)

我应该已经阅读错误消息并正确提示!

解决方案是将id转换为类似这样的字符串:

SELECT id,
       name,
       REPLACE('https://example.com/dataset/{id}/download/', '{id}', id::varchar) as download_url
FROM dataset;