【问题标题】:using a variable as xquery sql server 2005使用变量作为 xquery sql server 2005
【发布时间】:2014-05-15 16:50:18
【问题描述】:

我在sql中有如下查询

select  PricingXML.query('/Fields/Field1,/Fields/Field2') from T_SMPricingData 

PricingXML 是表 T_SMPricingData 中的一个 xml 列。

我需要将 xquery 从变量传递给查询,如下所示

declare @var nvarchar(100)
set @var='/Fields/Field1,/Fields/Field2'
select  PricingXML.query('sql:variable("@var")') from T_SMPricingData 

如何正确使用变量。它没有按预期的方式工作

编辑 我对原始正确查询的输出是

<Field1>10</Field1><Field2>11</Field2>
<Field1>20</Field1>

列中的数据看起来像

<Fields>
<Field1>20</Field1>
<Field3>22</Field3>
<Field4>23</Field4>
</Fields>

sql fiddle 的链接 http://www.sqlfiddle.com/#!3/12d7c/6/0

【问题讨论】:

  • 我不是在寻找值,而是在寻找特定的节点。
  • 能否从xml查询多个节点
  • 但我得到了预期的结果,请参阅我的编辑
  • “未按预期方式工作”是一个非常糟糕的问题描述。实际上,您甚至没有描述预期的方式。请发布示例输入、当前和预期输出。当您使用 SQL Server 时,最好创建一个 SQLfiddle

标签: sql-server xquery


【解决方案1】:

我通过

实现了上述
DECLARE @var nvarchar(100)
SET @var='/Fields/Field1,/Fields/Field2'
DECLARE @sqlCommand varchar(1000)
SET @sqlCommand = 'SELECT PricingXml.query('''+@var+''') from MyTable'
EXEC (@sqlCommand)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多