使用变量作为xquery sql server 2005

时间:2014-05-15 16:50:18

标签: sql-server xquery

我在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小提琴 http://www.sqlfiddle.com/#!3/12d7c/6/0

1 个答案:

答案 0 :(得分:0)

我通过

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