程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 精彩的表數據排序分組

精彩的表數據排序分組

編輯:關於SqlServer
 今天,當你需要對一個沒有排序ID的表進行排序,並且想給每一行數據都給一個序號。這相當於很多人問到的,如何在一個視圖中為每一行增加一個自動增長的“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組,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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved