我的表结构如下
FIELD1 FIELD2 FIELD3 FIELD4
ID001 AB 1 R
ID001 CD 2 R
ID002 AB 1 R
ID002 CD 3 R
ID002 EF 4 R
ID003 AB 1 R
ID003 CD 2 R
ID003 PQ 4 R
ID004 PQ 1 R
ID004 RS 2 R
我从其他资源获得的输入是这样的 - :
Field2,field3和field4将是输入。 Field2和field3将组合发送。字段4将被发送一次。
Input 1-((AB,1,CD,2),R)
Input 2-((AB,1,CD,2,PQ,4),R)
For this I should get field1 as the output.
For input 1, it should return ID001
For input 2, it should return ID003.
有人可以帮帮我吗?
整个要求是从其他字段获取field1
。
答案 0 :(得分:0)
它使用DB2的XML聚合功能,输入参数作为连接过滤器字符串:
select field1 from
(
select
field1,
xmlcast(xmlgroup(field2 || field3 as a) as varchar(15)) as fields23,
field4
from
your_table
group by
field1, field4
)
where
fields23 = 'AB1CD2' and field4 = 'R';
对于“输入2”的情况,请使用此过滤器:
...
where
fields23 = 'AB1CD2PQ4' and field4 = 'R';