我在table1中有一列,其中包含用逗号分隔的名称,如a,b,c
| 人名|结果|
| - ------|- ------|
| a、d、e||
| a、c、e、f||
| c、d、f、g||
- table2**中具有单个名称的另一列,如a或b或c
| 线|姓名|原点|
| - ------|- ------|- ------|
| 1个|项目a|美国|
| 第二章|b.人口基金|联合 Realm |
| 三个|(c)秘书长的报告|联合 Realm |
| 四个|日|澳大利亚|
| 五个|电子|加拿大|
| 六个|f级|联合 Realm |
| 七|克|联合 Realm |
如果表1.names中的任何名称位于www.example.com & origin = UK中,我想更新表1.result。table2.name & origin = UK.
尝试此操作,但出现错误;
update table1 as t1
set result =
(select name from table2 where origin='UK') = any(string_to_array(t1.names, ','))
1条答案
按热度按时间0yg35tkg1#
如果需要的结果是布尔值,请使用
exists(...)
:在db<>fiddle.中测试
如果您想获得名称,请使用
string_agg()
:Db<>fiddle.