激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Sql Server - SqlServer 2005 T-SQL Query 學習筆記(2)

SqlServer 2005 T-SQL Query 學習筆記(2)

2020-06-30 14:47mssql教程網 Sql Server

SqlServer 2005 T-SQL Query 學習筆記(2),有需要的朋友可以參考一下。

SQL2005增加了4個關于隊計算的函數:分別是ROW_NUMBER,RANK,DENSE_RANK,NTILE.

 

注意:這些函數只能出現在SELECT和ORDER BY的查詢中。語法如下:

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

 

ROW_NUMBER:在排序的基礎上對所有列進行連續(xù)的數字進行標識。

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

 

SQL2005之前的技術處理列計算

1.(SET-BASED)

在SQL2005之前,已經有了簡單的對列集合的計算,使用unique partitioning + sort 組合。

比如,你可以使用下面的技術:

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

 

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

 

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

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;

 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 黄色免费视频在线 | 妇女毛片 | 一级黄色毛片免费 | www国产成人免费观看视频,深夜成人网 | 中文字幕观看 | 欧美videofree性欧美另类 | 国产精品一区二区三区在线播放 | 亚洲国产精品久久久 | 亚洲第一男人天堂 | 特级西西444www大精品视频免费看 | 欧美成人综合视频 | 九一传媒在线观看 | 色中色综合 | 国产精品成人久久 | 一级看片免费视频 | 男女无套免费视频 | 久久久久久久久久久久久久久久久久 | 成人18在线| 综合毛片| 爱操在线 | hd性videos意大利复古 | 成人免费在线视频 | 国产精品美女久久久免费 | 国产九九热 | 最新一区二区三区 | 成人精品久久 | 国产一区二区三区视频免费 | 色淫影院 | 免费一区区三区四区 | av大全在线免费观看 | 亚洲视频欧美 | 欧美一级黄色录像片 | 免费黄色一级网站 | 国产久草视频在线 | 中国漂亮护士一级a毛片 | 男女生羞羞视频网站在线观看 | 一级@片| 午夜视频在线在免费 | 久久丝袜脚交足黄网站免费 | 亚洲午夜天堂吃瓜在线 | 毛片国产 |