2014-09-18 126 views
0

我試圖實現與TSQL以下TSQL重複行基於列

什麼,我有我的表看起來像這樣

A B C 3 

我想有什麼

A B C 1 
A B C 1 
A B C 1 

要基於數量列4拆分它..

不確定要使用哪個函數。

任何幫助,將不勝感激謝謝。

回答

4

您可以用數表連接,那麼它很容易爲:

SELECT t.* 
FROM dbo.Numbers n 
INNER JOIN Table1 t 
    ON n.n <= t.Col4 
ORDER by n.n 

Demo

如小提琴所示,你可以通過這種方式創建number table

SELECT TOP (1000000) n = CONVERT(INT, ROW_NUMBER() OVER (ORDER BY s1.[object_id])) 
INTO dbo.Numbers 
FROM sys.all_objects AS s1 CROSS JOIN sys.all_objects AS s2 
OPTION (MAXDOP 1); 

CREATE UNIQUE CLUSTERED INDEX n ON dbo.Numbers(n) 
-- WITH (DATA_COMPRESSION = PAGE) 
;