sql >> Base de Datos >  >> RDS >> Sqlserver

Repita las filas N veces según el valor de la columna

Puede usar un simple JOIN para obtener el resultado deseado de la siguiente manera:

SELECT  t1.*, t2.number + 1 RepeatNumber
FROM    TableA t1
JOIN    master.dbo.spt_values t2 ON t2.type = 'P' AND t2.number < t1.Quantity

La consulta anterior repite cada registro por el número especificado en Quantity columna.


Nota para master.dbo.spt_values on type = 'P' :
Esta tabla se usa para obtener una serie de números que están codificados de forma rígida en ella por
condición de type = 'P' .