Converter nós XML em linhas no SQL Server
Considere a amostra abaixo:
declare @somexml as xml
set @somexml = '
<Settings>
<Users>
<ID>1</ID>
<ID>2</ID>
<ID>3</ID>
<ID>4</ID>
<ID>5</ID>
</Users>
</Settings>'
O de cimaXML
tem algumID
valores que eu preciso converter em linhas de dados que podem ser usadas em uma tabela temporária para realizar junções.
Não consigo obter a sintaxe correta, tentei várias amostras que encontrei:
SELECT T.r.value('.','int') as id
FROM @somexml.nodes('/Settings/Users') T(r)
Devoluções:
|ID |
|------|
|12345 |
Os seguintes:
SELECT T.r.query('.') as id
from @somexml.nodes('/Settings/Users/ID') as T(r)
Devoluções:
|ID |
|-----------|
|<ID>1</ID> |
|<ID>2</ID> |
|<ID>3</ID> |
|<ID>4</ID> |
|<ID>5</ID> |
Estou chegando perto, mas quero remover oXML
para deixar apenas os valores de ID:
|ID |
|---|
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
Aqui está um violino, se você quiser jogar / resolver dessa maneira:SQL Fiddle
Qualquer ajuda é apreciada como sempre.