如何选择xml节点SQL Server



我有这个sql脚本

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)

我想选择所有四个向导我怎样才能做到这一点?

我的sql server版本是10.0.5.50.00

试试这个:

(SELECT 
    Col.value('.', 'UNIQUEIDENTIFIER') as IDCode 
    FROM @XmlStr.nodes('/EmployeeID/Employee') Tab(Col))

此外:尽量避免在xpath 中使用//

这对某些特定情况是有好处的。

最新更新