Tan*_*ner 2 xml sql-server sql-server-2012
考虑以下示例:
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>'
Run Code Online (Sandbox Code Playgroud)
上面XML有一些ID值,我需要将这些值转换为可在临时表中执行连接的数据行。
我不能完全正确地理解语法,我已经尝试了许多示例:
SELECT T.r.value('.','int') as id
FROM @somexml.nodes('/Settings/Users') T(r)
Run Code Online (Sandbox Code Playgroud)
返回值:
|ID |
|------|
|12345 |
Run Code Online (Sandbox Code Playgroud)
下列:
SELECT T.r.query('.') as id
from @somexml.nodes('/Settings/Users/ID') as T(r)
Run Code Online (Sandbox Code Playgroud)
返回值:
|ID |
|-----------|
|<ID>1</ID> |
|<ID>2</ID> |
|<ID>3</ID> |
|<ID>4</ID> |
|<ID>5</ID> |
Run Code Online (Sandbox Code Playgroud)
我越来越近了,但是我想删除XML标签以保留ID值,如下所示:
|ID |
|---|
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
Run Code Online (Sandbox Code Playgroud)
如果您想以这种方式玩/解决问题,这里有个小提琴:SQL小提琴
一如既往地提供任何帮助。