【发布时间】:2021-10-16 13:21:35
【问题描述】:
我正在使用 SQL Developer (Oracle 11g) 来查询包含 XML 字段的表,该字段具有以下结构:
<Affordability>
<Data>
<Run RunNo="1" ChosenResult="N">
<Field1>xxx</Field1>
<Field2>xxx</Field2>
<Field3>xxx</Field3>
</Run>
<Run RunNo="2" ChosenResult="Y">
<Field1>xxx</Field1>
<Field2>xxx</Field2>
<Field3>xxx</Field3>
</Run>
<Run RunNo="3" ChosenResult="N">
<Field1>xxx</Field1>
<Field2>xxx</Field2>
<Field3>xxx</Field3>
</Run>
</Data>
</Affordability>
我希望能够从作为所选结果 (ChosenResult = "Y") 的运行中检索 Field1、Field2 和 Field3。
到目前为止,我有一个基本的 XMLTABLE 查询:
SELECT xt.*
FROM table t,
XMLTABLE('/Affordability/Data/Run'
PASSING t.xml_data
COLUMNS
Field1 VARCHAR2(20) PATH 'Field1'
Field2 VARCHAR2(20) PATH 'Field2'
Field3 VARCHAR2(20) PATH 'Field3'
) xt
但我不知道如何搜索标签以获取 ChosenResult = "Y"。
任何帮助将不胜感激。
【问题讨论】: