表间导数据的问题

big_net 2003-12-17 11:28:12
表的结构和需求如下:
表1
编号 值 序号
B 100 1
B 150 2
B 160 3

C 210 1
C 130 2
.....
转化成
表2
编号 序号1 序号2 序号3
B 100 150 160
C 210 130
用什么办法把表1中的数据弄到表2中,且速度比较快??
我用的pb中的数据窗口,总感觉这样速度比较慢
...全文
54 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 元老 2003-12-17
  • 打赏
  • 举报
回复
--下面是查询得到结果的例子:

--测试数据
create table 表1(编号 varchar(1),值 int,序号 int)
insert into 表1
select 'B',100,1
union all select 'B',150,2
union all select 'B',160,3
union all select 'C',210,1
union all select 'C',130,2

--查询处理
declare @s varchar(8000)
set @s=''
select @s=@s+',[序号'+序号+']=sum(case 序号 when '+序号+' then 值 else 0 end)'
from(select distinct 序号=cast(序号 as varchar) from 表1) a
exec('select 编号'+@s+' from 表1 group by 编号')
go

--删除测试表
drop table 表1
go

/*--测试结果

编号 序号1 序号2 序号3
---- ----------- ----------- -----------
B 100 150 160
C 210 130 0

--*/
zjcxc 元老 2003-12-17
  • 打赏
  • 举报
回复
--上面写错了一个关键字,改一下:
declare @s varchar(8000)
set @s=''
select @s=@s+',[序号'+序号+']=sum(case 序号 when '+序号+' then 值 else 0 end)'
from(select distinct 序号=cast(序号 as varchar) from 表1) a

--如果表2已经存在
exec('insert into 表2 select 编号'+@s+' from 表1 group by 编号')

--如果表2不存在
exec('select 编号'+@s+' into 表2 from 表1 group by 编号')
zjcxc 元老 2003-12-17
  • 打赏
  • 举报
回复
declare @s varchar(8000)
set @s=''
select @s=@s+',[序号'+序号+']=sum(case 序号 when '+序号+' then 值 else 0 end)'
from(select distinct 序号=cast(序号 as varchar) from 表1) a

--如果表2已经存在
exec('insert into 表2 select 编号'+@s+' from 表1 grou by 编号')

--如果表2不存在
exec('select 编号'+@s+' into 表2 from 表1 grou by 编号')
txlicenhe 2003-12-17
  • 打赏
  • 举报
回复

declare @sql varchar(8000)
set @sql = 'select 编号'
select @sql = @sql + ',sum(case 序号 when '''+cast(序号 as varchar)+''' then cj end) ['+cast(序号 as varchar)+']'
from (select distinct 序号 from 表1) as a
select @sql = @sql+' from 表1 group by 编号'
exec(@sql)
txlicenhe 2003-12-17
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/2440/2440306.xml?temp=.6941645
[交流]行列转换

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧