如何在 SQL Server 2008 中从 XML 文档中选择每个标签?

Bok*_*kac 5 xml sql sql-server-2008

我正在寻找是否可以在 T-SQL 中进行查询,从XML 文档的每个标签中选择值。

我不知道可以有多少个标签,也不知道它们的名称,因为它应该是动态的...输出格式并不重要(稍后可以对其进行操作),唯一重要的是我从每个标签获取数据:)

谢谢

mar*_*c_s 2

你可以尝试这样的事情:

DECLARE @input XML = '..... add your XML here........'

SELECT 
    NodeName = Nod.value('local-name(.)', 'varchar(50)'),
    NodeValue = Nod.value('.', 'varchar(50)')
FROM @input.nodes('//*') AS TBL(Nod)
Run Code Online (Sandbox Code Playgroud)

这将列出 XML 中的所有节点(名称和值)。

警告:我只是varchar(50)在这里随机选择作为 XML 节点元素的数据类型。如果这不适合您 - 根据需要进行调整!由于您要同时转换它们,因此必须将它们全部转换为相同的数据类型 - 这varchar似乎是一个相当安全的选择:-)