【发布时间】:2015-08-18 11:58:09
【问题描述】:
我在 sql 查询的字段中拥有这个 XML,但我想从中提取 EventID。
<Form>
<Row LegID="1" EventID="8242323" MarType="WIN" DivType="FIXED" FMid="26881933" oID="4" />
<Row LegID="2" EventID="8274278" MarType="WIN" DivType="FIXED" FMid="27000091" oID="1" />
<Row LegID="3" EventID="8274189" MarType="HCWEST" DivType="FIXED" FMid="26999824" oID="2" />
<Row LegID="4" EventID="8243036" MarType="WIN" DivType="FIXED" FMid="26884162" oID="2" />
<Row LegID="5" EventID="8246510" MarType="WIN" DivType="FIXED" FMid="26898727" oID="2" />
<Row LegID="6" EventID="8301802" MarType="WIN" DivType="FIXED" FMid="27101445" oID="4" />
<Row LegID="7" EventID="8305000" MarType="WIN" DivType="FIXED" FMid="27111681" oID="1" />
<Row LegID="8" EventID="8299986" MarType="WIN" DivType="FIXED" FMid="27095255" oID="1" />
</Form>
我已经尝试使用this page 中的“Shredding XML”部分,但我猜这不起作用,因为我的 XML 不是由每个项目的打开和关闭标签形成的。
有人知道我要做的任务叫什么吗?
//编辑//
太棒了,我可以阅读它,但我有一个后续问题。 我的选择是这样的:
SELECT LegNumber, X.Col.value('(Row/@EventID)[1]', 'varchar(25)') AS 'EventID'
FROM myTable mt
CROSS APPLY mt.MultiLegXML.nodes('/Form') as X(Col)
LegNumber 是一个 int,对应于 XML 中的 LegID。
If LegNumber = 2,如何从第二行读取 EventID? (Where LegID = 2)
【问题讨论】:
标签: sql-server xml