今天,當(dāng)你需要對(duì)一個(gè)沒(méi)有排序ID的表進(jìn)行排序,并且想給每一行數(shù)據(jù)都給一個(gè)序號(hào)。這相當(dāng)于很多人問(wèn)到的,如何在一個(gè)視圖中為每一行增加一個(gè)自動(dòng)增長(zhǎng)的“ID”號(hào)。你可以這樣寫(xiě):
| 以下為引用的內(nèi)容: Select a.Badge,Count(a.Badge) as xorder From cPayroll a , cPayroll b Where a.Badge > = b.Badge Group by a.Badge |
看了以后的語(yǔ)句,你可能會(huì)覺(jué)得非常簡(jiǎn)單。在以上的基礎(chǔ)上,還可以滿足以下這樣一個(gè)很實(shí)用的功能。一個(gè)表中的前20行分成第1組,從21行-->40行分成第2組,41-->60 分成第3組。也即是在一個(gè)表的基礎(chǔ)上拓展用視圖生成以下的數(shù)據(jù)。(xOrder 與 Group 都是視圖生成的。)
| 以下為引用的內(nèi)容: Badge xOrder Group A1 1 G1 A2 2 G1 . B1 21 G2 B2 22 G2 ... C1 41 G3 ... |
在上面的視圖得出來(lái)以后, 我們就可以用 Select * from ViewName Where Group = 'G1' ('G2'....) 的語(yǔ)句進(jìn)行分組或分頁(yè)顯示查詢了。以下我們來(lái)生成這樣的結(jié)果。
在排序功能實(shí)現(xiàn)了以后,再實(shí)現(xiàn)分組,就是略微變化一下而已:
| 以下為引用的內(nèi)容: 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 |
新聞熱點(diǎn)
疑難解答
圖片精選