sql-server - T-SQL、XQuery 无效列

标签 sql-server tsql xquery-sql

我只是在学习 XQUERY 并尝试完成我认为非常简单的事情。这是我的 T-SQL 代码:

DECLARE @XML xml
set @xml = '<resultsets><AppVersion>13.0</AppVersion></resultsets>'

-- Code below is wrong
select 
ResultSets.AppVersion.query('AppVersion').value('.', 'varchar(100)') as AppVersion
from @XML.nodes('/resultsets/AppVersion') ResultSets(AppVersion)

我无法弄清楚如何查询该内部元素 appversion。我没有收到任何错误,但我无法在 appversion 内部元素中返回 13.0。有人可以帮忙吗?

最佳答案

你有一个 AppVersion太多。这将返回您的 13.0 :

DECLARE @XML xml
set @xml = '<resultsets><AppVersion>13.0</AppVersion></resultsets>'

-- Code below is right
select 
ResultSets.AppVersion.value('.', 'varchar(100)') as AppVersion
from @XML.nodes('/resultsets/AppVersion') ResultSets(AppVersion)

你的 nodes方法已经深入到 AppVersion节点,所以从那里你不需要进一步的 query , 只是 value .

关于sql-server - T-SQL、XQuery 无效列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8590183/

相关文章:

sql-server - 图像表的数据库设计

java - 在 Java 中将数据类型 nvarchar 转换为 datetime2 时出错

xpath - 如何编写查询xquery?

xml - 如何在t-sql中连接peer节点的值

sql-server - 具有持续集成的 SQL Server 数据库管理

sql - 尝试将两个表从一个数据库迁移到另一个数据库时陷入困境

sql - 同一张表上的两个外键显示父字段

tsql - 用作 EXISTS 子查询时的慢查询

sql - 一对多查询选择所有父级和每个父级的单个顶级子级

sql-server - 使用 TRANSACT-SQL 将节点添加到 XML