Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Menduplikasi baris berdasarkan nilai kolom di setiap baris

Ini akan mendukung lebih dari 7.400 pengulangan untuk setiap pekerjaan individu (di sistem saya). Jika Anda membutuhkan lebih banyak, Anda dapat menggunakan tabel sistem yang berbeda atau gabungan silang.

DECLARE @d TABLE (Job INT, Quantity INT, Status VARCHAR(12), Repeat INT);

INSERT @d SELECT 1, 100, 'OK'  ,2
UNION ALL SELECT 2, 400, 'HOLD',0
UNION ALL SELECT 3, 200, 'HOLD',1
UNION ALL SELECT 4, 450, 'OK'  ,3;

WITH x AS 
(
  SELECT TOP (SELECT MAX(Repeat)+1 FROM @d) rn = ROW_NUMBER() 
  OVER (ORDER BY [object_id]) 
  FROM sys.all_columns 
  ORDER BY [object_id]
)
SELECT * FROM x
CROSS JOIN @d AS d
WHERE x.rn <= d.Repeat + 1
ORDER BY Job;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Menambahkan Batasan Kunci Asing ke Tabel yang Ada di SQL Server (T-SQL)

  2. SQL Server:Bagaimana cara mendapatkan referensi kunci asing dari information_schema?

  3. Kait SQL Server – Kait Lain Yang Perlu Diketahui

  4. Contoh sys.dm_sql_referenced_entities() SQL Server Mengembalikan Entitas yang Mereferensikan Server Tertaut

  5. Fungsi Peringkat di SQL Server