我的请求xml是这种格式的。
<Tr>
<Row id="50000" type =A/>
<Row id="50002" type =B/>
<Row id="50003" type =C/>
<Row id="50004" type =C/>
</Tr>Server中是否有一种方法可以在存储过程中解析这个xml并创建一个临时表来填充这种格式的记录
Type A - 50000
Type B - 50002
Type C - 50003,500004或者这种格式
Type id
A 50000
B 50002
C 50003
C 50004发布于 2013-11-25 05:41:47
一旦使XML成为有效的 XML,就可以轻松地将其解析为easily中的行和列:
(在这里,@input变量被定义为XML并设置一个固定的值--这可能是存储过程中的输入参数)
DECLARE @input XML = '<Tr>
<Row id="50000" type="A" />
<Row id="50002" type="B" />
<Row id="50003" type="C" />
<Row id="50004" type="C" />
</Tr>'
SELECT
Type = XCol.value('@type', 'varchar(10)'),
ID = XCol.value('@id', 'int')
FROM
@input.nodes('Tr/Row') AS XTbl(XCol)为您提供所需的输出(第二种样式--XML中的每个<Row>条目一行)
https://stackoverflow.com/questions/20183363
复制相似问题