PostgreSQL整数数组值使用desc字符串连接到其他表中的整数
发布时间:2020-12-13 16:14:10 所属栏目:百科 来源:网络整理
导读:我有一个带有int数组的表测试列,其值为{1000,4000,6000}或{1000}或{1000,4000},称为ekw. 这些值与另一个表中的描述字符串匹配 tab: testid | name | ekw----------------- 1 | One | {1000} 2 | Two | {1000,4000} 3 | Three | {1000,6000}tab: ekwdescid |
我有一个带有int数组的表测试列,其值为{1000,4000,6000}或{1000}或{1000,4000},称为ekw.
这些值与另一个表中的描述字符串匹配 tab: test id | name | ekw ----------------- 1 | One | {1000} 2 | Two | {1000,4000} 3 | Three | {1000,6000} tab: ekwdesc id | value | desc ----------------- 1 | 1000 | Max 2 | 2000 | Tim 3 | 3000 | Rita 5 | 4000 | Sven 6 | 5000 | Tom 7 | 6000 | Bob 是否可以选择这些列并打印字符串? 就像是: select name,ekw from test,ekwdesc 我想看到这个结果: id | name | ekwdesc ----------------- 1 | One | Max 2 | Two | Max,Sven 3 | Three | Max,Sven,Bob 我试过IN和ANY,但无法让它工作.
您有正确的想法使用any运算符进行连接.连接完成后,剩下的就是使用
string_agg 将结果转换为您想要的格式:
SELECT name,STRING_AGG(description,',') FROM test JOIN ekwdesc ON ekwdesc.value = ANY(test.ekw) GROUP BY name 有关可执行示例,请参见随附的SQLFiddle. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |