KS Kian Seng
KS Kian Seng

Reputation: 319

How to get the ROOT node name from SQL Server

I have a table where ID is integer and XML is XML data type.

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

How do I get the result below?

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

Upvotes: 15

Views: 15376

Answers (2)

Gayathri L
Gayathri L

Reputation: 1487

Try this

DECLARE @xml as xml
SET @xml = '<Form1>...</Form1>'
SELECT Nodes.Name.query('local-name(.)') FROM @xml.nodes('//*') As Nodes(Name)

Upvotes: 2

podiluska
podiluska

Reputation: 51504

Use the local-name() function

 select ID, XML.value('local-name(/*[1])','varchar(100)')
 from yourtable

Upvotes: 33

Related Questions