我有这个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 中使用//
这对某些特定情况是有好处的。