日期:2014-05-17  浏览次数:20551 次

求一个SQL SERVER 中把一条记录根据数量拆分
数据库中一个表如下:
原表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
*/