+ -
当前位置:首页 → 问答吧 → 如何实现按某列返回重复行记录

如何实现按某列返回重复行记录

时间:2011-12-09

来源:互联网

某视图如下
  代码 名称 份数 打印份数
  01 张三 90 2
  02 李四 80 3

通过select 生成如下
  代码 名称 份数  
  01 张三 90  
  01 张三 90  
  02 李四 80  
  02 李四 80  
  02 李四 80  

这样好直接打印出来相应的份数。

作者: lyq   发布时间: 2011-12-09

SQL code

select a.*
from tb a,master..spt_values b
where b.[type] = 'p' and b.number between 1 and a.打印份数

作者: AcHerat   发布时间: 2011-12-09

SQL code

if object_id('tb') is not null
   drop table tb
go
create table tb
(
 代码 varchar(10),
 名称 varchar(10),
 份数 int,
 打印份数 int
)
go
insert into tb
select '01','张三',90,2 union all
select '02','李四',80,3
go
select 代码,名称,份数 from tb a cross join master..spt_values b where b.type='p' and number between 1 and 打印份数
go
/*
(2 行受影响)
代码         名称         份数
---------- ---------- -----------
01         张三         90
01         张三         90
02         李四         80
02         李四         80
02         李四         80

(5 行受影响)
*/

作者: pengxuan   发布时间: 2011-12-09

这个是哪个公司的面试题啊,我好想面试过,需要创建临时表,然后分组插入,批量更新,最后查询临时表,具体我相信你应该没问题吧

作者: liu_yueyang   发布时间: 2011-12-10