首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

xml查询之动态属性名称有关问题

2012-10-07 
xml查询之动态属性名称问题SQL codeDECLARE @s XML,@Price DECIMAL(18,2),@i INT,@xmlPath VARCHAR(200)SE

xml查询之动态属性名称问题

SQL code
DECLARE @s XML,@Price DECIMAL(18,2),@i INT,@xmlPath VARCHAR(200)SET @i=2 --实际应用中,通过参数传递进来的SET @s = '<row ProductID="1" Price1="111.00" Price2="222.00" Price3="333.00" Price4="444.00" Price5="555.00" Price6="666.00" Price7="777.00"/>'SET xmlPath = '/row[1]/@Price' + CONVERT(VARCHAR(10),@i)--这里是要动态读取某个字段的SET @Price = @s.value(@xmlPath,'DECIMAL(18,2)')--这样传进来不行,应该怎么写?


[解决办法]
SQL code
DECLARE @s XML,@Price DECIMAL(18,2),@i INT,@xmlPath VARCHAR(200)DECLARE @PriceName VARCHAR(10)='Price2'SET @s = '<row ProductID="1" Price1="111.00" Price2="222.00" Price3="333.00" Price4="444.00" Price5="555.00" Price6="666.00" Price7="777.00"/>'SELECT @s.value('(/row/@*[local-name()=sql:variable( "@PriceName")])[1]','DECIMAL(18,2)') 

热点排行