我正在使用DB2 for z / OS V10。
我需要从DB2表中直接选择一些数据到XML中,并将数据分组到1级以上,如下例所示
<actionCodeGrp>
<actionCode>A</actionCode>
<ISINGrp>
<ISIN>DE0000000001</ISIN>
<NAME>ISIN-DE-1</NAME>
<ISSUER>AAA</ISSUER>
</ISINGrp>
<ISINGrp>
<ISIN>DE0000000002</ISIN>
<NAME>ISIN-DE-2</NAME>
<ISSUER>BBB</ISSUER>
</ISINGrp>
</actionCodeGrp>
<actionCodeGrp>
<actionCode>B</actionCode>
<ISINGrp>
<ISIN>DE0000000003</ISIN>
<NAME>ISIN-DE-3</NAME>
<ISSUER>CCC</ISSUER>
</ISINGrp>
<ISINGrp>
<ISIN>DE0000000004</ISIN>
<NAME>ISIN-DE-4</NAME>
<ISSUER>DDD</ISSUER>
</ISINGrp>
</actionCodeGrp>
上面列出的列都是同一个关系表的一部分。 我发现的所有例子都只有最大值。一个group by子句,我不知道如何编写更复杂的查询。有人可以帮忙吗?
答案 0 :(得分:0)
要将多个级别的数据分组到XML文档中似乎不太受支持,但我使用嵌套的子选择使其工作:
SELECT
基本上,内部<FIELD1 F1="VAL1">
<FIELD2 F2="FM124">
<FIELD3 F3="SEF"/>
<FIELD3 F3="SEF"/>
<FIELD3 F3="AUS"/>
<FIELD3 F3="SEF"/>
<FIELD3 F3="SEF"/>
<FIELD3 F3="SEF"/>
<FIELD3 F3="AUS"/>
<FIELD3 F3="SEF"/>
<FIELD3 F3="SEF"/>
</FIELD2>
<FIELD2 F2="FM132">
<FIELD3 F3="SEF"/>
<FIELD3 F3="SEF"/>
<FIELD3 F3="SEF"/>
<FIELD3 F3="AUS"/>
<FIELD3 F3="SEF"/>
<FIELD3 F3="AUS"/>
<FIELD3 F3="SEF"/>
<FIELD3 F3="SEF"/>
</FIELD2>
</FIELD1>
<FIELD1 F1="VAL2">
<FIELD2 F2="FM124">
<FIELD3 F3="SEF"/>
<FIELD3 F3="SEF"/>
<FIELD3 F3="SEF"/>
<FIELD3 F3="AUS"/>
<FIELD3 F3="SEF"/>
<FIELD3 F3="SEF"/>
</FIELD2>
<FIELD2 F2="FM132">
<FIELD3 F3="SEF"/>
<FIELD3 F3="SEF"/>
<FIELD3 F3="SEF"/>
<FIELD3 F3="SEF"/>
<FIELD3 F3="AUS"/>
<FIELD3 F3="SEF"/>
<FIELD3 F3="SEF"/>
<FIELD3 F3="AUS"/>
<FIELD3 F3="SEF"/>
</FIELD2>
</FIELD1>
生成一个原始XML元素列表,其中包含内部组以及要在周围元素中使用的列。然后外部funcs = [func1, func2]
for i, voltage in enumerate(ranges):
for step in voltage:
func = funcs[i % 2]
func(step)
使用此数据从这些组创建组。所以结果将是这样的:
ranges