sql把根据数量列,拆分为相应的记录。

2014年3月7日

数据库中一个表如下:
原表T的查询结果
A列(编码)  B列(名称)  C列(数量)
AA            笔                 5
AB            纸                 3

希望根据c列的数量查询出来的结果是
A列(编码)  B列(名称)  C列(数量)
AA            笔                1
AA            笔                1
AA            笔                1
AA            笔                1
AA            笔                1
AB            纸                1
AB            纸                1
AB            纸                1

在SQL SERVER 2008中 如何能做到 ?

 

 

--drop table t

create table T(A varchar(10), B varchar(10),  C int)

insert into T
select 'AA',            '笔',                 5 union all
select 'AB',            '纸',                 3
go

select t.A 编码, t.B as 名称,1 as 数量 
from t,master..spt_values s
where t.c>= s.number and s.type= 'P' and s.number >0
/*
编码	名称	数量
AA	笔	1
AA	笔	1
AA	笔	1
AA	笔	1
AA	笔	1
AB	纸	1
AB	纸	1
AB	纸	1
*/
声明: 本文采用 BY-NC-SA 协议进行授权. 转载请注明转自: sql把根据数量列,拆分为相应的记录。
本文的评论功能被关闭了.