Как выбрать XML-узлы SQL Server - PullRequest
1 голос
/ 20 марта 2012

У меня есть этот скрипт 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 10.0.5500.0

1 Ответ

3 голосов
/ 20 марта 2012

попробуйте это:

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

также: старайтесь избегать использования // в xpath

, это хорошо для некоторых конкретных случаев.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...