Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Répéter les lignes N fois en fonction de la valeur de la colonne

Vous pouvez utiliser un simple JOIN pour obtenir le résultat souhaité comme ci-dessous :

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 requête ci-dessus répète chaque enregistrement par le nombre spécifié dans Quantity colonne.


Remarque pour master.dbo.spt_values on type = 'P' :
Cette table est utilisée pour obtenir une série de nombres qui y sont codés en dur par
la condition de type = 'P' .