postgresql 如何删除Postgres字符串中的当前字符

emeijp43  于 2023-10-18  发布在  PostgreSQL
关注(0)|答案(1)|浏览(235)

我只需要从Postgres中的字符串'[1,11,1,1,11,12,1,11]'中删除字符1,而不影响其他字符。符号11和111、12不应受到影响。我科普不了这项任务。请帮我
最终结果应该是字符串'[11,111,12,11]'
我尝试了不同的替换选项REPLACE(%s,“1,",”)、REPLACE(%s,“1,”,“)

h79rfbju

h79rfbju1#

由内而外:首先用{}替换[],以获得正确的数组语法,然后将结果字符串转换为文本数组,并将其转换为unnest字符串表。选择不等于“1”的元素,将结果集聚合回一个字符串,并将其格式化在方括号内。

select format('[%s]', string_agg(e, ','))
from unnest(replace(replace('[1,11, 1, 111,12,1,11]','[','{'),']','}')::text[]) e
where not e = '1';

DB-Fiddle

相关问题