Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Повторете редовете N пъти според стойността на колоната

Можете да използвате просто JOIN за да получите желания резултат, както е показано по-долу:

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

Горната заявка повтаря всеки запис с посочения номер в Quantity колона.


Забележка за master.dbo.spt_values on type = 'P' :
Тази таблица се използва за получаване на поредица от числа, които са твърдо кодирани в нея чрез
условие на type = 'P' .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. свържете две колони на базата данни в една колона с набор от резултати

  2. Върнете редовете в точния ред, в който са били вмъкнати

  3. Компресиране на текстово поле в Sql Server 2k8 R2

  4. SYSDATETIME() Примери в SQL Server (T-SQL)

  5. Как да съедините накъсо клаузата Where в SQL