麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數(shù)據(jù)庫 > SQL Server > 正文

SqlServer 2005 T-SQL Query 學(xué)習(xí)筆記(2)

2024-08-31 01:01:28
字體:
供稿:網(wǎng)友

SQL2005增加了4個(gè)關(guān)于隊(duì)計(jì)算的函數(shù):分別是ROW_NUMBER,RANK,DENSE_RANK,NTILE.

 

注意:這些函數(shù)只能出現(xiàn)在SELECT和ORDER BY的查詢中。語法如下:

ranking_function over([partition by col_list] order by col_list)

 

ROW_NUMBER:在排序的基礎(chǔ)上對(duì)所有列進(jìn)行連續(xù)的數(shù)字進(jìn)行標(biāo)識(shí)。

執(zhí)行順序:為了計(jì)算列值,優(yōu)化器首先需要把數(shù)據(jù)在分區(qū)列上進(jìn)行排序,然后在對(duì)這些列進(jìn)行編碼。

 

SQL2005之前的技術(shù)處理列計(jì)算

1.(SET-BASED)

在SQL2005之前,已經(jīng)有了簡單的對(duì)列集合的計(jì)算,使用unique partitioning + sort 組合。

比如,你可以使用下面的技術(shù):

SELECT empid, (SELECT COUNT(*) FROM dbo.Sales AS S2 WHERE S2.empid <= S1.empid) AS rownumFROM dbo.Sales AS S1ORDER BY empid;

 

這是非常簡單的,但也是非常慢的。。。

 

如果需要組合條件產(chǎn)生列數(shù)(即非唯一列的組合排序和斷路器),可以這樣做:

SELECT empid, qty, (SELECT COUNT(*) FROM dbo.Sales AS S2 WHERE S2.qty < S1.qtyOR (S2.qty = S1.qty AND S2.empid <= S1.empid)) AS rownumFROM dbo.Sales AS S1ORDER BY qty, empid;

 

當(dāng)然還有很多方法,比如用游標(biāo),就不寫例子了。

 

2.(IDENTITY-Based Solution)

1, 1) AS rnINTO #SalesRN FROM dbo.Sales;#SalesRN;DROP TABLE #SalesRN;

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 黄色特级一级片 | 久久久青青草 | 久久艹艹艹 | 激情综合在线 | 亚州欧美视频 | 国产一级毛片高清视频完整版 | 草逼一区| 亚洲免费视频大全 | 羞羞视频.www在线观看 | 日韩黄色影视 | 国产精品久久久久久久久久10秀 | 久久精品a一级国产免视看成人 | 91视频久久 | 欧美特一级片 | 日韩欧美中文字幕视频 | 国产女厕一区二区三区在线视 | 国产精品入口夜色视频大尺度 | 亚洲人成在线播放网站 | 播色网| 免费a级片视频 | 色淫网站免费视频 | 国产成人精品午夜视频' | 欧美成年性h版影视中文字幕 | 中国av中文字幕 | 成人在线观看小视频 | 中文字幕一区二区三区久久 | 久久精品国产99久久久古代 | a黄色片| 久久久久久久久久一本门道91 | 欧美三级日本三级少妇99 | av在线播放地址 | 91福利在线观看 | 欧美成人黄色片 | 刘亦菲一区二区三区免费看 | 在线a| 欧美1区2区在线观看 | 日本成人一二三区 | 一区二区久久精品66国产精品 | 毛片免费视频网站 | 日韩午夜一区二区三区 | 国产一区二区三区四区精 |