我有一个包含二进制值的表,例如:
binaryid description
1 description1
2 description2
4 description3
8 description4
我还有另一个包含值的表:
DBID BinaryTogether
1 15
1 12
1 6
使用按位运算符,我想得到一个包含以下内容的表:
DBID BinaryTogether BitwiseResult
1 15 description1,description2,description3,description4
1 12 description3,description4
1 6 description2, description3
答案 0 :(得分:1)
您可以使用&
按位运算符连接这些表,然后使用string_agg
函数汇总描述。这是一个例子:
with
b(x,d) as (
values
(1,'description1'),
(2,'description2'),
(4,'description3'),
(8,'description4')),
p(y) as (
values
(15),
(12),
(6))
select
y,
string_agg(d,',')
from
p join b on (x & y != 0)
group by
y