如何选择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的

它有利于某些特定情况下使用//