使用 TABLESAMPLE 限制結果集 【轉載】

 

TABLESAMPLE是SQL 2005開始引入的一個新語法,它可以針對表的數據進行抽樣。

 

A. 選擇行的百分比

Person.Contact 表包含 19,972 行。下列語句將返回大約 10% 的行。每次執行此語句時,返回的行數通常都不同。

USE AdventureWorks ;
GO
SELECT FirstName, LastName
FROM Person.Contact 
TABLESAMPLE (10 PERCENT) ;
B. 選擇帶有種子值的行的百分比

每次執行時,下列語句都將返回同一組行。種子值 205 是任意選擇的。

USE AdventureWorks ;
GO
SELECT FirstName, LastName
FROM Person.Contact 
TABLESAMPLE (10 PERCENT)    REPEATABLE (205) ;
C. 選擇若干行

下列語句將返回大約 100 行。實際返回的行數可能會有很大差異。如果指定較小的數值,例如 5,則在示例中可能收不到任何結果。

USE AdventureWorks ;
GO
SELECT FirstName, LastName
FROM Person.Contact 
TABLESAMPLE (100 ROWS) ;
 
需要特別注意的是:TABLESAMPLE子句與TOP子句是不同的,TOP子句是基於順序的。而TABLESAMPLE則是隨機抽樣的
TABLESAMPLE的結果集可能是不確定。可能有,也可能沒有

如果想要得到固定數目的隨機行,則可能需要考慮其他方式

例如

SELECT TOP (10) * FROM Northwind..Orders Order BY NEWID()

原文鏈接:http://www.cnblogs.com/chenxizhang/archive/2009/05/19/1460040.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章