13

我有一个表,其中IDisintegerXMLisXML数据类型。

ID   XML
----------------------
1    <Form1>...</Form1>
2    <Form1>...</Form1>
3    <Form2>...</Form2>
4    <Form3>...</Form3>

我如何得到下面的结果?

ID   XML
-------------
1    Form1
2    Form1
3    Form2
4    Form3
4

2 回答 2

31

使用local-name()功能

 select ID, XML.value('local-name(/*[1])','varchar(100)')
 from yourtable
于 2013-09-06T07:47:24.383 回答
2

试试这个

DECLARE @xml as xml
SET @xml = '<Form1>...</Form1>'
SELECT Nodes.Name.query('local-name(.)') FROM @xml.nodes('//*') As Nodes(Name)
于 2013-09-06T07:48:50.813 回答