删除postgresql中逗号分隔的值



一个表字母表具有列值nvarchar,值为(A、B、C、D、E、F、G、H(我们有另一个与上一个表链接的表,这个表有一列其具有值(C、H(。

因此这两个值将从前面的表列中删除。

ID
1 A、B、C、D、E、F、G、H、I、J、K、L、M
2 A、C、F、G、H、J、U、V、W、X、Y、Z

示例查询:

select 
t1.id, 
string_agg(t1.val1, ',') as "values"
from 
(select "id", unnest(('{' || "values"  || '}')::text[]) as val1 from table1 
) as t1 
left join
(select "id", unnest(('{' || "values"  || '}')::text[]) val2 from table2  
) t2 on t1.id = t2.id and t1.val1 = t2.val2 
where t2.id is null 
group by t1.id 
-- Return: 
id      values
---------------------------------
1       B,D,E,G,H,I,J,K,L,M
2       A,C,F,G,H,X,J,U,V,W,Y,Z

最新更新