今天,當你需要對一個沒有排序id的表進行排序,并且想給每一行數(shù)據(jù)都給一個序號。這相當于很多人問到的,如何在一個視圖中為每一行增加一個自動增長的“id”號。你可以這樣寫:
| 以下為引用的內容: 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組,41-->60 分成第3組。也即是在一個表的基礎上拓展用視圖生成以下的數(shù)據(jù)。(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'....) 的語句進行分組或分頁顯示查詢了。以下我們來生成這樣的結果。
在排序功能實現(xiàn)了以后,再實現(xiàn)分組,就是略微變化一下而已:
| 以下為引用的內容: 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 |
新聞熱點
疑難解答