下面介紹乙個sql server 2005 中的新東東:
row_number
返回結果集分割槽內行的序列號,每個分割槽的第一行從 1 開始。
語法:row_number ( ) over ( [ ] )
備註:order by 子句可確定在特定分割槽中為行分配唯一 row_number 的順序。
引數:將 from 子句生成的結果集劃入應用了 row_number 函式的分割槽。
確定將 row_number 值分配給分割槽中的行的順序。
返回型別:
bigint
示例:select
*into
#tfrom
(select
2f1, 'aa
'f2,
'101
'f3
union
allselect
1f1, 'aa
'f2,
'102
'f3
union
allselect
4f1, 'bb
'f2,
'103
'f3
union
allselect
5f1, 'cc
'f2,
'104
'f3
union
allselect
3f1, 'aa
'f2,
'105
'f3
union
allselect
7f1, 'bb
'f2,
'106
'f3
union
allselect
6f1, 'cc
'f2,
'107
'f3
union
allselect
5f1, 'cc
'f2,
'108
'f3
) t1--1
select
row_number()
over
(order
byf1
asc)
asf1order,
*from
#t --
先按照f1順序,再加上順序號f1order,結果如下:
f1order f1 f2 f3
-------------------- ----------- ---- ----11
aa
1022
2aa
1013
3aa
1054
4bb
1035
5cc
1046
5cc
1087
6cc
1078
7bb
106--
2select
row_number()
over
(order
byf1
desc
) as
f1order,
*from
#t --
先按照f1倒序,再加上順序號f1order,結果如下:
f1order f1 f2 f3
-------------------- ----------- ---- ----17
bb
1062
6cc
1073
5cc
1084
5cc
1045
4bb
1036
3aa
1057
2aa
1018
1aa
102--
3select
row_number()
over
(order
byf1
asc)
asf1order,
*from
#t order
byf1
asc--
先按照f1順序,再加上順序號f1order,再把結果按f1順序顯示,結果如下:
f1order f1 f2 f3
-------------------- ----------- ---- ----11
aa
1022
2aa
1013
3aa
1054
4bb
1035
5cc
1046
5cc
1087
6cc
1078
7bb
106--4
select
row_number()
over
(order
byf1
asc)
asf1order,
*from
#t order
byf1
desc
--先按照f1順序,再加上順序號f1order,再把結果按地f1倒序顯示,注意順序號f1order也倒過來了,保持位置相對不變,結果如下:
f1order f1 f2 f3
-------------------- ----------- ---- ----87
bb
1067
6cc
1075
5cc
1046
5cc
1084
4bb
1033
3aa
1052
2aa
1011
1aa
102
SQL2005使用CLR函式獲取行號
行號可以廣泛使用在分頁或者報表當中。sql2005使用row number來獲取,但這個需要配合order來處理,資料量大的情況下可能會影響效能。要實現clr自定函式返回行號的關鍵問題是乙個自增長的序列如何儲存,並且需要考慮併發和釋放的問題。這裡我用了乙個靜態的集合來保持這個事物,缺點是每次查詢必須...
SQL2005使用CLR函式獲取行號
行號可以廣泛使用在分頁或者報表當中。sql2005使用row number來獲取,但這個需要配合order來處理,資料量大的情況下可能會影響效能。要實現clr自定函式返回行號的關鍵問題是乙個自增長的序列如何儲存,並且需要考慮併發和釋放的問題。這裡我用了乙個靜態的集合來保持這個事物,缺點是每次查詢必須...
取得sql2005 表字段資訊的sql語句
select row number over order by id as row number,fieldname,fielddescn as cnname,fieldtype,fieldlength,isidentifier,iskeyfield,allownull,defaultvalue,f...