SqlServer 2005 T-SQL Query 學習筆記(2)
SQL2005增加了4個關(guān)于隊計算的函數(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ǔ)上對所有列進行連續(xù)的數(shù)字進行標識。
執(zhí)行順序:為了計算列值,優(yōu)化器首先需要把數(shù)據(jù)在分區(qū)列上進行排序,然后在對這些列進行編碼。
SQL2005之前的技術(shù)處理列計算
1.(SET-BASED)
在SQL2005之前,已經(jīng)有了簡單的對列集合的計算,使用unique partitioning + sort 組合。
比如,你可以使用下面的技術(shù):
SELECT empid, (SELECT COUNT(*) FROM dbo.Sales AS S2 WHERE S2.empid <= S1.empid) AS rownum FROM dbo.Sales AS S1 ORDER BY empid;
這是非常簡單的,但也是非常慢的。。。
如果需要組合條件產(chǎn)生列數(shù)(即非唯一列的組合排序和斷路器),可以這樣做:
SELECT empid, qty, (SELECT COUNT(*) FROM dbo.Sales AS S2 WHERE S2.qty < S1.qty OR (S2.qty = S1.qty AND S2.empid <= S1.empid)) AS rownum FROM dbo.Sales AS S1 ORDER BY qty, empid;
當然還有很多方法,比如用游標,就不寫例子了。
2.(IDENTITY-Based Solution)
SELECT empid, qty, IDENTITY(int, 1, 1) AS rn INTO #SalesRN FROM dbo.Sales; SELECT * FROM #SalesRN; DROP TABLE #SalesRN;
- SQLServer用t-sql命令批量刪除數(shù)據(jù)庫中指定表(游標循環(huán)刪除)
- 如何在SQL Server 2008下輕松調(diào)試T-SQL語句和存儲過程
- SQL Server中的T-SQL的基本對象
- SqlServer 2005 T-SQL Query 學習筆記(4)
- SqlServer 2005 T-SQL Query 學習筆記(3)
- SqlServer 2005 T-SQL Query 學習筆記(1)
- SQLServer 2008 新增T-SQL 簡寫語法
- SQL Server 數(shù)據(jù)庫管理常用的SQL和T-SQL語句
- SQL Server 數(shù)據(jù)庫管理常用的SQL和T-SQL語句
- SQL Server 數(shù)據(jù)庫管理常用的SQL和T-SQL語句
- T-sql語句修改SQL Server數(shù)據(jù)庫邏輯名、數(shù)據(jù)庫名、物理名的方法
相關(guān)文章
SQL Server 2005 鏡像構(gòu)建手冊(sql2005數(shù)據(jù)庫同步鏡像方案)
為了網(wǎng)站數(shù)據(jù)庫安全,我們需要備份數(shù)據(jù),這里為大家分享下sql2005數(shù)據(jù)庫同步鏡像方案,需要的朋友可以參考下2014-08-08
SQLServer 2005 控制用戶權(quán)限訪問表圖文教程
SQL Server權(quán)限管理很簡單的一小塊,有些地方并沒有深入理解和講述,只是希望對一些剛?cè)腴T的童鞋有幫助,其它大俠就當是:我當堂嚇一跳,然后得啖笑。2011-07-07
簡單實用SQL腳本Part SQLServer 2005 鏈接服務(wù)器
SQL Server 2005版本的SSMS中已經(jīng)有了 服務(wù)器對象->鏈接服務(wù)器 的功能點,用戶首先創(chuàng)建一個遠程DB的鏈接對象,之后就可以像本地表一樣執(zhí)行表的DML了。2010-09-09
一步一步教你創(chuàng)建SQL 2005計劃任務(wù)應(yīng)用圖解教程
使用sql的計劃任務(wù)可以處理一些特殊環(huán)境的數(shù)據(jù),除了使用windows系統(tǒng)的計劃任務(wù)來定時處理,不過要配合程序才行,有些事情可以直接使用sql本身的計劃任務(wù),更方便,所以本文圖解一下Sql2005計劃任務(wù)的創(chuàng)建使用。2010-03-03
sql server 2005用戶權(quán)限設(shè)置深入分析
關(guān)于什么是用戶權(quán)限,最簡單的定義可能是,用戶能做什么和不能做什么,本文將詳細介紹sql server 2005用戶權(quán)限設(shè)置,需要了解的朋友可以參考下2012-11-11
SQL Server 2005與sql 2000之間的數(shù)據(jù)轉(zhuǎn)換方法
這篇文章主要介紹了SQL Server 2005與sql 2000之間的數(shù)據(jù)轉(zhuǎn)換方法,需要的朋友可以參考下2014-08-08
Sqlserver 2005附加數(shù)據(jù)庫時出錯提示操作系統(tǒng)錯誤5(拒絕訪問)錯誤5120的解決辦法
最近幾天從網(wǎng)上找了幾個asp.net的登錄案例想要研究研究代碼,結(jié)果在用Sql Server2005附加數(shù)據(jù)庫文件時彈出錯誤信息提示5120錯誤,這里簡單說下解決方法,需要的朋友可以參考下2013-11-11
sql里將重復(fù)行數(shù)據(jù)合并為一行數(shù)據(jù)使用逗號進行分隔
sql里將重復(fù)行數(shù)據(jù)合并為一行,將多行fieldname字段的內(nèi)容串聯(lián)起來,用逗號分隔,接下來為大家介紹下詳細的實現(xiàn)sql語句,希望對你有所幫助2013-04-04

