如何将Sql Int值拆分为多行

Jos*_*ard 7 sql

可以说我在MS SQL 2000中有下表

Id | description | quantity |
-------------------------------
1    my desc          3
2    desc 2           2
Run Code Online (Sandbox Code Playgroud)

我需要根据数量显示多行,所以我需要以下输出:

Id | description | quantity |
-----------------------------
1    my desc          1
1    my desc          1
1    my desc          1
2    desc 2           1
2    desc 2           1
Run Code Online (Sandbox Code Playgroud)

任何想法如何实现这一目标?

Sam*_*ron 4

这工作得很好,不需要任何光标。没有数字表也可以解决一些问题。

请注意,如果采用这种解决方案,我会保留一个数字表,而不是每次运行查询时都重新创建它。

create table #splitme (Id int, description varchar(255), quantity int) 
insert #splitme values (1    ,'my desc',          3)
insert #splitme values (2    ,'desc 2',           2)

create table #numbers (num int identity primary key) 
declare @i int 
select @i = max(quantity) from #splitme
while @i > 0
begin   
    insert #numbers default values 
    set @i = @i - 1 
end

select Id, description, 1 from #splitme 
join #numbers on num <= quantity
Run Code Online (Sandbox Code Playgroud)