Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wiederholen Sie die Zeilen N-mal entsprechend dem Spaltenwert

Sie können ein einfaches JOIN verwenden um das gewünschte Ergebnis wie folgt zu erhalten:

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

Die obige Abfrage wiederholt jeden Datensatz um die angegebene Anzahl in Quantity Spalte.


Hinweis für master.dbo.spt_values on type = 'P' :
Diese Tabelle wird verwendet, um eine Reihe von Zahlen zu erhalten, die darin durch
die Bedingung type = 'P' fest codiert sind .