Select a.Badge,Count(a.Badge) as xorder
From cPayroll a , cPayroll b
Where a.Badge > = b.Badge Group by a.Badge
看了以後的語句,你可能會覺得非常簡單。在以上的基礎上,還可以滿足以下這樣一個很實用的功能。一個表中的前20行分成第1組,從21行40行分成第2組,4160 分成第3組。也即是在一個表的基礎上拓展用視圖生成以下的數據。(xOrder 與 Group 都是視圖生成的。)
Badge xOrder Group
A1 1 G1
A2 2 G1
.
B1 21 G2
B2 22 G2
...
C1 41 G3
...
在上面的視圖得出來以後, 我們就可以用 Select * from VIEwName Where Group = 'G1' ('G2'....) 的語句進行分組或分頁顯示查詢了。以下我們來生成這樣的結果.
在排序功能實現了以後,再實現分組,就是略微變化一下而已:
Select Badge , Count(a.Badge) as xorder , Cast(((Count(a.Badge)-1)/20 ) +1 as varchar(10)) as Group
From cPayroll a , cPayroll b
Where a.Badge > = b.Badge Group by a.Badge