T SQL系列 新的排序函式

2022-05-30 18:42:14 字數 1384 閱讀 5580

如:row_number、rank、dense_rank

三個分析函式都是按照col1分組內從1開始排序

row_number() 是沒有重複值的排序(即使兩天記錄相等也是不重複的),可以利用它來實現分頁

dense_rank() 是連續排序,兩個第二名仍然跟著第三名

rank() 是跳躍拍學,兩個第二名下來就是第四名

示例:

declare

@t1table

( sequence

int,

name

varchar(20

) , score

int)

insert

into

@t1select1,

'甲',

7union

allselect2,

'甲',

8union

allselect3,

'甲',

8union

allselect4,

'甲',

8union

allselect5,

'甲',

9union

allselect1,

'乙',

10union

allselect2,

'乙',

6union

allselect3,

'乙',

10union

allselect4,

'乙',

6union

allselect5,

'乙',

8select

sequence ,

name ,

score ,

row_number()

over ( order

by sequence, score ) as

rownumber1 ,

row_number()

over ( order

by sequence, score desc ) as

rownumber2 ,

rank()

over ( order

by score ) as

rnk ,

dense_rank()

over ( order

by score ) as

densernk ,

ntile(

15) over ( order

by score ) as

bucket

from

@t1

結果集:

t sql中的COUNT函式

1 count函式的定義 count函式的定義可見msdn。定義如下 count 那麼count 有兩種使用方式count expression 和count 它返回乙個對乙個表按某列計數的值。以此可以得出乙個結論 count 返回值總是大於或等於count expression 的返回值。在應用中...

t sql中的COUNT函式

t sql中的count函式 count函式的定義可見msdn。定義如下 count 那麼count 有兩種使用方式count expression 和count 它返回乙個對乙個表按某列計數的值。1.count 返回表的行數。它不會過濾null和重複的行。2.count expression 會過...

t sql語句排序的程式bug

最近同事處理乙個客戶發現乙個bug,在排序的時候出現問題 可能是資料庫的bug field002這裡有個 2008 03 02 的排序,其他都是按field002來排序,個別不是按field002排序。執行語句 select from select id,field001 asfield001,fi...