我只需要从Postgres中的字符串'[1,11,1,1,11,12,1,11]'中删除字符1,而不影响其他字符。符号11和111、12不应受到影响。我科普不了这项任务。请帮我最终结果应该是字符串'[11,111,12,11]'我尝试了不同的替换选项REPLACE(%s,“1,",”)、REPLACE(%s,“1,”,“)
h79rfbju1#
由内而外:首先用{和}替换[和],以获得正确的数组语法,然后将结果字符串转换为文本数组,并将其转换为unnest字符串表。选择不等于“1”的元素,将结果集聚合回一个字符串,并将其格式化在方括号内。
{
}
[
]
unnest
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
1条答案
按热度按时间h79rfbju1#
由内而外:首先用
{
和}
替换[
和]
,以获得正确的数组语法,然后将结果字符串转换为文本数组,并将其转换为unnest
字符串表。选择不等于“1”的元素,将结果集聚合回一个字符串,并将其格式化在方括号内。DB-Fiddle