Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Repita as linhas N vezes de acordo com o valor da coluna


Você pode usar um simples JOIN para obter o resultado desejado como abaixo:

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

A consulta acima repete cada registro pelo número especificado em Quantity coluna.


Observação para master.dbo.spt_values on type = 'P' :
Esta tabela é usada para obter uma série de números que são codificados nela por
condição de type = 'P' .