2010-12-09 139 views
0

我想知道,如果任何人都可以使用TSQL来获取NODE名称o XML变量。使用tsql获取XML节点

<ROOT> 
<IDS> 
<ID> 
<NAME>bla1</NAME> 
<AGE>25</AGE> 
</ID> 
<ID> 
<NAME>bla2</NAME> 
<AGE>26</AGE> 
</ID> 
</IDS> 
</ROOT> 

我查询后,我应该能够得到的节点的名称:姓名,年龄

我的SQL Server是MSSQL 2005

回答

1

这将使你的孩子节点名称第一个ID节点:

DECLARE @x xml 

SET @x = '<ROOT> 
<IDS> 
<ID> 
<NAME>bla1</NAME> 
<AGE>25</AGE> 
</ID> 
<ID> 
<NAME>bla2</NAME> 
<AGE>26</AGE> 
</ID> 
</IDS> 
</ROOT>' 

SELECT T.c.value('local-name(.)', 'varchar(50)') 
FROM @x.nodes('/ROOT/IDS/ID[1]/*') T(c)