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