【发布时间】:2017-03-06 06:35:54
【问题描述】:
我得到了这样的xml:
< person code="SNIPER">
<type code="SINGLE" />
<version code="1" dateFrom="2015-03-20" />
</version>
<version code="2" dateFrom="2012-06-15" />
</version>
< /person>
我有sql查询:
select extract(VALUE(cd_xml), 'version/@code').getstringval() code
,cast(to_timestamp_tz(replace(extract(VALUE(cd_xml), 'version/@dateFrom')
.getstringval(), 'T', ''),
'yyyy-mm-dd') as date) datefrom
from table(xmlsequence(extract(get_xml, '/*/person/version'))) cd_xml
它返回两行:
1 2015-03-10
2 2012-06-15
我想获得这样的行:
single 1 2015-03-10
single 2 2012-06-15
或
sniper 1 2015-03-10
sniper 2 2012-06-15
怎么做?? 我用父子句尝试了不同的事情,但我没有做到:(
【问题讨论】:
-
你如何决定你想要“单身”还是“狙击手”?此外,您的 XML 有
version节点,这些节点既是自关闭的,又带有明确的关闭标签,这使得它无效;并且您的 XPath 需要一个节点 aboveperson。您可以编辑问题以使其保持一致吗? -
我简化了问题。我得到了xml,这样的xml很少。问题是我需要带有“单”的行。但是如果我以某种方式收到带有狙击手的行,我可以进行另一个查询以将“狙击手”与“单人”连接起来