如何选择XML节点的SQL Server
问题描述:
我有这样的SQL脚本如何选择XML节点的SQL Server
DECLARE @XmlStr XML
SET @XmlStr = '<EmployeeID>
<Employee>48f9194f-8d46-e111-8849-0050569445f1</Employee>
<Employee>7d725561-8d46-e111-8849-0050569445f2</Employee>
<Employee>7d725562-8d46-e111-8849-0050569445f3</Employee>
<Employee>7d725563-8d46-e111-8849-0050569445f4</Employee>
</EmployeeID>'
(SELECT
@XmlStr.value('(/EmployeeID//Employee/node())[1]', 'UNIQUEIDENTIFIER') as IDCode
FROM @XmlStr.nodes('//EmployeeID') Tab(Col))
但是当我运行的结果是:
IDCode
48F9194F-8D46-E111-8849-0050569445F1
(1 row(s) affected)
我要选择所有四个GUID的 我怎么能做到这一点?
我的SQL Server版本是10.0.5500.0
答
试试这个:
(SELECT
Col.value('.', 'UNIQUEIDENTIFIER') as IDCode
FROM @XmlStr.nodes('/EmployeeID/Employee') Tab(Col))
也: 尽量避免在XPath的
它有利于某些特定情况下使用//
。