Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Ripeti le righe N volte in base al valore della colonna

Puoi usare un semplice JOIN per ottenere il risultato desiderato come di seguito:

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 query precedente ripete ogni record per il numero specificato in Quantity colonna.


Nota per master.dbo.spt_values on type = 'P' :
Questa tabella viene utilizzata per ottenere una serie di numeri che è codificata in essa mediante
condizione di type = 'P' .