显示数组与值列表匹配的行

问题描述 投票:0回答:1

如果之前有人问过这个问题,我很抱歉。我是 SQL 新手,一直在尝试寻找答案但无济于事。

我有一个看起来像这样的数据集:

代码 总计
1,2,3 4
5 6
5,7 8

“Codes”是一个 varchar 列。

我想创建一个查询,如果“代码”包含数组中的任何一个值,它允许我聚合“总计”。

类似这样的:

SELECT SUM(total)
FROM table
WHERE (codes) = ANY('5','7')

在这种情况下,SUM 应为 14。

适当的查询应该是什么?任何帮助将不胜感激!

sql postgresql
1个回答
0
投票

你很接近了。您可以使用字符串匹配

~
ANY
数组比较,几乎与您已经尝试过的一样:
db<>fiddle 的演示

SELECT SUM(total)
FROM test
WHERE codes ~ ANY(array['5','7'])
© www.soinside.com 2019 - 2024. All rights reserved.