我有这个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)
我想选择所有四个guid 我怎么能实现这个目标呢?
我的sql server版本是10.0.5500.0
答案 0 :(得分:3)
试试这个:
(SELECT
Col.value('.', 'UNIQUEIDENTIFIER') as IDCode
FROM @XmlStr.nodes('/EmployeeID/Employee') Tab(Col))
还:
尽量避免在xpath中使用//
这对某些特定情况有好处。