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

lyq 2011-12-09 10:19:37
某视图如下
代码 名称 份数 打印份数
01 张三 90 2
02 李四 80 3

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

这样好直接打印出来相应的份数。
...全文
85 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
liu_yueyang 2011-12-10
  • 打赏
  • 举报
回复
这个是哪个公司的面试题啊,我好想面试过,需要创建临时表,然后分组插入,批量更新,最后查询临时表,具体我相信你应该没问题吧
快溜 2011-12-10
  • 打赏
  • 举报
回复
select a.*
from tb a,master..spt_values b
where b.[type] = 'p' and b.number between 1 and a.份数
lyq 2011-12-10
  • 打赏
  • 举报
回复
to AcHerat:,OK,问题解决,就是这个效果
to pengxuan:强调的是用select ,不能用临时表,临时表我会
to liu_yueyang:非面试题,实际的应用,控制打印条形码的个数
pengxuan 2011-12-09
  • 打赏
  • 举报
回复

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 行受影响)
*/
AcHerat 元老 2011-12-09
  • 打赏
  • 举报
回复

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

34,591

社区成员

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

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