sql 里怎样将数量字段的数量显示相应的记录数出来

在线等sql 里怎样将数量字段的数量显示相应的记录数出来?在线等
如题有一个表,要做打印标签,有的商品要根据数量打印相应个数出来,也就是按数量拆分成单条:
A01(条码)     A02(单价)     A03(数量)     A04(备注)
---------------------------------------------------------------------------------
80001              78.5                    2                         化妆品类
80002              25                       1                         饮料类
80003              50                       3                         烟酒类
....

想得到如下结果(希望语句写得短小精悍):
A01(条码)     A02(单价)     A03(数量)     A04(备注)
---------------------------------------------------------------------------------
80001              78.5                    1                         化妆品类
80001              78.5                    1                         化妆品类

80002              25                       1                         饮料类
80003              50                       1                         烟酒类
80003              50                       1                         烟酒类
80003              50                       1                         烟酒类

....
------解决思路----------------------
with a(条码,单价,数量,备注) as(
select 80001,78.5,2,'化妆品类' union all
select 80002,25,1,'饮料类' union all
select 80003,50,3,'烟酒类'
)

select a.条码,a.单价,1 as 数量,a.备注 from a, master..spt_values where type='p' and number<a.数量

/**
条码    单价   数量   备注
--------------------------------
80001 78.5 1 化妆品类
80001 78.5 1 化妆品类
80002 25.0 1 饮料类
80003 50.0 1 烟酒类
80003 50.0 1 烟酒类
80003 50.0 1 烟酒类
--------------------------------
**/

------解决思路----------------------
SELECT T1.A01,T1.A02,1 A03,T1.A04
FROM TB T1
JOIN master..spt_values T2 ON T2.type='P' AND T2.number<T1.A03