【问题标题】:T-SQL, XQuery Invalid ColumnT-SQL,XQuery 无效列
【发布时间】:2011-12-21 12:58:13
【问题描述】:

我只是在学习 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。有人可以帮忙吗?

【问题讨论】:

    标签: sql-server tsql xquery-sql


    【解决方案1】:

    你的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

    【讨论】:

      【解决方案2】:

      如果您只想要一行结果,则无需使用nodes

      DECLARE @XML xml
      set @xml = '<resultsets><AppVersion>13.0</AppVersion></resultsets>'
      
      select @XML.value('(/resultsets/AppVersion)[1]', 'varchar(100)') as AppVersion
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-05-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-13
        • 2016-08-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多