在 SQL Server 中检索 XML 数据时需要帮助

沙阿

我需要帮助从存储在 SQL Server 表的列中的 XML 中检索数据。我一直在搜索问题存储库,但找不到与我的匹配的任何问题。也许我以某种方式错过了。无论如何,这里存储的 XML 是这样的:

<ProductStructure>
  <Plans>Essential</Plans>
  <Plans>Standard</Plans>
  <Plans>Silver</Plans>
  <Plans>Gold</Plans>
  <Plans>Platinum</Plans>
  <Plans>Titanium</Plans>
  <Destinations>Region A</Destinations>
  <Destinations>Region B</Destinations>
  <Destinations>Region C</Destinations>
  <Destinations>Region D</Destinations>
  <InsuredTypes>One Person</InsuredTypes>
  <InsuredTypes>Couple</InsuredTypes>
  <InsuredTypes>Group</InsuredTypes>
</ProductStructure>

我想选择 xml 并在 SQL 中获得如下输出:

|Plans          |Essential    |
|               |Standard     |
|               |Silver       |
|               |Gold         |
|               |Platinum     |
|               |Titanium     |
|---------------+-------------|
|Destinations   |Region A     |
|               |Region B     |
|               |Region C     |
|               |Region D     |
|---------------+-------------|
|InsuredTypes   |One Person   |
|               |Couple       |
|               |Group        |

对不起,如果问题被形象化了。谢谢你。

靠背
DECLARE @xml xml = N'<ProductStructure>
  <Plans>Essential</Plans>
  <Plans>Standard</Plans>
  <Plans>Silver</Plans>
  <Plans>Gold</Plans>
  <Plans>Platinum</Plans>
  <Plans>Titanium</Plans>
  <Destinations>Region A</Destinations>
  <Destinations>Region B</Destinations>
  <Destinations>Region C</Destinations>
  <Destinations>Region D</Destinations>
  <InsuredTypes>One Person</InsuredTypes>
  <InsuredTypes>Couple</InsuredTypes>
  <InsuredTypes>Group</InsuredTypes>
</ProductStructure>'

SELECT
    t.value('local-name(.)','nvarchar(max)'),
    t.value('.','nvarchar(max)')
FROM @xml.nodes('ProductStructure/*') AS t(t)

你会得到:

-------------------- --------------------
Plans                Essential
Plans                Standard
Plans                Silver
Plans                Gold
Plans                Platinum
Plans                Titanium
Destinations         Region A
Destinations         Region B
Destinations         Region C
Destinations         Region D
InsuredTypes         One Person
InsuredTypes         Couple
InsuredTypes         Group

您可以根据需要对结果进行分组。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

检索传递给 SQL Server 中存储过程的 XML 数据时出现问题

SQL Server从多个表中检索数据

需要 SQL 帮助中的 XML 输出

在SQL Server中读取XML数据

在 SQL Server 2014 中查询 XML 数据

查询存储在 SQL Server 中的 XML 数据

需要帮助在 sql server 中编写查询

从SQL Server中的两个表中检索数据

java无法从我的jtable中的sql server中检索数据

在将xml数据转换为html时需要帮助操作<p>标记中的文本而不会丢失子节点,需要帮助

使用Python从SQL Server数据库中检索数据

在将Pandas Dataframe插入python的Sql-server DB中时需要帮助

从 SQL Server 2016 检索复杂的 XML

使用OPENROWSET从XML文档中检索数据时,将XML文档中的数据提取到SQL表中,将其清空

在SQL Server中插入更新数据帮助

SQL查询以检索XML数据

为什么在SQL Server中执行HASHBYTES需要“ FOR XML XXX”?

在ASP中调用SQL时需要帮助

检索SQL Server中具有相同前缀的所有XML元素

如何从xml中检索元素值并从SQL Server获得多个命名空间?

如何从 SQL Server 中的 XML 列中获取数据?

将xml中的数据提取到SQL server表中

SQL Server:读取XML数据

在sql数据库中需要帮助才能从日期中检索日期

从 SQL Server 数据库中提取数据时删除 XML 中的非法字符

SQL Server xml 路径中的 XML 格式

在我的数据库sql中创建视图时需要帮助

在SQL Server中执行MDX查询需要2秒,但通过ADOMD执行它并检索数据需要5分钟

如何从SQL Server中的多个XML文件读取数据?