天天看点

关于oracle数据库 多条相同数据拆分成数量为1的单条数据

如题,比如我现在有一个表A,

A01(流水号)      A02(编号)     A03(数量) 

--------------------------------------------------------------

1                               a001                  3                    

。。。

想要得到如下结果:原记录不删除,然后生成三条记录,编号不变,数量全部是1

A01(流水号)      A02(编号)     A03(数量)  A04(条码)

-----------------------------------------------------------------------------------------------------------

1                               a001                  1      

2                               a001                  1         

3                               a001                  1      

解决方法:

SELECT t1.a01,t1.a02,t2.rn

FROM tab t1,(SELECT ROWNUM rn FROM dual CONNECT BY ROWNUM<10000) t2

WHERE t1.a03>=t2.rn

把取到的数量值强制转换为1就OK 了