2010-02-10 45 views
0

我想在行數中插入行號,如計數特定範圍內的行數。例如輸出:在t-sql中的記錄中重複插入rownumber

RowNumber ID Name 
1   20 a  
2   21 b 
3   22 c 
1   23 d 
2   24 e 
3   25 f 
1   26 g 
2   27 h 
3   28 i 
1   29 j 
2   30 k 

我寧可嘗試使用過ROWNUMBER()(分區按訂單按列名),但我的真實記錄不包含將算到1-3 ROWNUMBER列。

我已經嘗試循環每個記錄來插入行數1-3,但是這個循環會影響查詢的性能。查詢將用於RDL報告,這就是爲什麼查詢的性能必須儘可能好的原因。

歡迎任何建議。謝謝

回答

1

你試過模數rownumber()嗎?

SELECT ((ROW_NUMBER()OVER(ORDER BY ID)-1)%3)+1作爲ROWNUMBER FROM表

+0

這解決了我的問題。謝謝。 – jeff 2010-02-11 02:01:50