请问:
DECLARE @doc xml
set @doc=(select Fxml from 订单产品记录表 where FID='06cb85ec-57fe-4554-a657-1e666cc590b4')
--上面那句话是取出一个XML字段的数据,数据如下("<root><user level='01'><game type='1' member='user'><item type='UserLimit'>abcd</item><item type='UserLimit2'>dfsdafds</item><item type='UserLimit3'>5</item></game></user></root>";)select @docdeclare @up Table
(
feldkey varchar(127),
feldvalue varchar(127)
)
insert @up
SELECT cast(订单产品记录表.c.value('@type','varchar(127)') as varchar(127)) AS feldkey,
cast(订单产品记录表.c.query('text()') as varchar(127)) AS feldvalue
FROM @doc.nodes('(/root/user/game/item)') 订单产品记录表(c)
declare @set varchar(8000)
select @set=isnull(@set+',','') + a.feldkey from (
select cast(订单产品记录表.c.value('@type','varchar(200)') as varchar(2000)) AS feldkey, --节点属性
cast(订单产品记录表.c.query('text()') as varchar(2000)) AS feldvalue --节点值
FROM @doc.nodes('(/root/user/game/item)') 订单产品记录表(c)) aSELECT * FROM (select * from @up) as t PIVOT (count(feldvalue) FOR feldkey IN (@set)) Alias报错:必须声明标量变量 "@set"。或必须声明标量变量@up
DECLARE @doc xml
set @doc=(select Fxml from 订单产品记录表 where FID='06cb85ec-57fe-4554-a657-1e666cc590b4')
--上面那句话是取出一个XML字段的数据,数据如下("<root><user level='01'><game type='1' member='user'><item type='UserLimit'>abcd</item><item type='UserLimit2'>dfsdafds</item><item type='UserLimit3'>5</item></game></user></root>";)select @docdeclare @up Table
(
feldkey varchar(127),
feldvalue varchar(127)
)
insert @up
SELECT cast(订单产品记录表.c.value('@type','varchar(127)') as varchar(127)) AS feldkey,
cast(订单产品记录表.c.query('text()') as varchar(127)) AS feldvalue
FROM @doc.nodes('(/root/user/game/item)') 订单产品记录表(c)
declare @set varchar(8000)
select @set=isnull(@set+',','') + a.feldkey from (
select cast(订单产品记录表.c.value('@type','varchar(200)') as varchar(2000)) AS feldkey, --节点属性
cast(订单产品记录表.c.query('text()') as varchar(2000)) AS feldvalue --节点值
FROM @doc.nodes('(/root/user/game/item)') 订单产品记录表(c)) aSELECT * FROM (select * from @up) as t PIVOT (count(feldvalue) FOR feldkey IN (@set)) Alias报错:必须声明标量变量 "@set"。或必须声明标量变量@up
解决方案 »
- 如何实现行和列之间的转换
- 存储过程中使用链接服务器查寻数据,如何返回记录集
- 高手们帮忙呀
- xp上 安装sql server 2000的个人版的 问题
- SQLSERVER2000企业管理器中的数据库消失了
- 怎么回事?关于新建表
- 能不能用标准的SQL语句, 使清除一张表的数据时,该表的所有外键关联都暂时失效
- 急!!如何从数据库中有相同记录的表中,只提取相同记录中的一个?
- 在本地计算机上应如何操纵远程的sql server数据库?请说明具体的步骤
- 诸位可知财务系统里的自动转帐是怎么回事么
- 为什么两条SQL取出的数据不一样?
- sql2005 develop导入数据的选择项目真少,远不及2000 ,导数据好像很困难
(
feldkey varchar(127),
feldvalue varchar(127)
)
insert #up (feldkey,feldvalue)
SELECT 订单产品记录表.c.value('@type','varchar(127)') AS feldkey,
订单产品记录表.c.value('.','varchar(127)') AS feldvalue
FROM @doc.nodes('(/root/user/game/item)') 订单产品记录表(c)
declare @set varchar(8000)
select @set=isnull(@set+',','') + feldkey from #up group by feldkey;
exec('select * from #up pivot(count(feldvalue) for feldkey in('+@set+')) as pvt')drop table #up