【问题标题】:Select Query on xml data选择查询 xml 数据
【发布时间】:2014-09-16 12:16:32
【问题描述】:

我有;

declare @result xml
set @result='<root><data><color20>red</color20></data></root>'

select tab.col('@color20','varchar(500)'
    from @result.nodes(/data)tab(col)

我想从名为@period 的变量中取出 20

select tab.col('@color+'+@period+'','varchar(500)'
    from @result.nodes(/data)tab(col)

当我在查询上方运行时,我得到以下错误 XML 数据类型方法“value”的参数 1 必须是字符串字面量。

我该怎么做?

【问题讨论】:

    标签: sql sql-server xml tsql


    【解决方案1】:

    你可以试试下面的查询

    declare @result xml
    set @result='<root><data><color20>red</color20><color21>blue</color21></data></root>'
    declare @period varchar(10)
    set @period='20'
    
    select tab.col.value('fn:local-name(.)', 'nvarchar(max)') as Name,
       tab.col.value('.', 'nvarchar(max)') as Value 
    from @result.nodes('/root/data/*')tab(col)
    where tab.col.value('fn:local-name(.)', 'nvarchar(max)')='color'+ @period
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-21
      • 1970-01-01
      • 1970-01-01
      • 2013-06-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多