摘要:SQL - 使用 ROW_NUMBER 來實現群組編排序號
今天同事問我一個問題,要如何使用 T-SQL 做到以下的呈現:
序號 | 文字 |
1 | A |
2 | A |
3 | A |
1 | B |
2 | B |
3 | B |
1 | C |
2 | C |
3 | C |
印象當中,這種呈現方式在 Reporting Service 中到是滿常見到的,T-SQL 嘛,我到是不常遇到,可能我比較沒福份遇到這方面的需求,之後查了一下 MSDN 後,果然豁然開朗。
範例:
DECLARE @table table(gName char(2));
Insert into @table Values('A')
Insert into @table Values('A')
Insert into @table Values('A')
Insert into @table Values('B')
Insert into @table Values('B')
Insert into @table Values('B')
Insert into @table Values('C')
Insert into @table Values('C')
Insert into @table Values('C')
Select ROW_NUMBER() OVER(PARTITION BY gName ORDER BY gName DESC) AS 'Row Number',
gName
From @table
結果:
滿簡單的,詳細的說明,可以參閱 MSDN 的網站。