程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> T-SQL 隨機返回特定行數據和分頁查詢

T-SQL 隨機返回特定行數據和分頁查詢

編輯:關於SqlServer

T-SQL 語言相較於標准SQL添加了很多特性,為了提高SQL Server的表現,是有必要深入了解的,面試時一般也會包 含這兩個小問題。

首先,是在一個AdventureWorks中Person.Address中隨機返回5行信息,可以如下寫:

SELECT TOP 5 * 
FROM
(
    SELECT *,NEWID() as RandomID
    FROM Person.Address
) t
ORDER BY t.RandomID

關鍵在於調用了內置函數NEWID()生成的隨機數,並排序,取前5行。

分頁查詢,需要查詢Person.Address中按城市排序後的第50-200行,當然可以寫一個存儲過程來專門按參數來查詢。

SELECT * FROM
(
    SELECT *,ROW_NUMBER() OVER (ORDER BY City) as RowNumber
    FROM Person.Address
) AS t
WHERE t.RowNumber BETWEEN 50 AND 200

關鍵是采用了ROW_NUMBER()函數,計算在所有查詢行中當前行是排行第幾,再篩選最後的結果。

總結:用一些語言的特性,雖然綁定了平台,不過,在一個大平台上,就無所謂了,用它還是值得的。

查看本欄目

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved