📜  如何在 SQL Server 中有效地返回随机行?(1)

📅  最后修改于: 2023-12-03 14:52:34.758000             🧑  作者: Mango

如何在 SQL Server 中有效地返回随机行?

在 SQL Server 中,我们可以使用不同的方法来返回随机行,比如使用 Rand() 函数、使用 ORDER BY 和 TOP 语句组合,以及使用 TABLESAMPLE 子句。下面将详细介绍这些方法的用法。

Rand() 函数

Rand() 函数返回一个介于 0 和 1 之间的随机数。我们可以将 Rand() 函数与 ORDER BY 和 TOP 语句组合,来返回随机行。具体语法如下:

SELECT TOP 10 * FROM table ORDER BY Rand()

这条 SQL 语句会先对表进行随机排序,然后再取出前 10 行。

使用 ORDER BY 和 TOP 语句组合

除了使用 Rand() 函数,我们还可以使用 ORDER BY 和 TOP 语句组合来返回随机行。具体语法如下:

SELECT TOP 10 * FROM table ORDER BY NEWID()

这条 SQL 语句会先对表进行随机排序,然后再取出前 10 行。其中,NEWID() 函数会产生一个 GUID(全局唯一标识符),可以用来随机排序。

使用 TABLESAMPLE 子句

SQL Server 还提供了 TABLESAMPLE 子句,可以从表中随机抽取一定比例的行。具体语法如下:

SELECT * FROM table TABLESAMPLE (10 PERCENT)

这条 SQL 语句会从表中随机抽取 10% 的行。

注意,使用 TABLESAMPLE 子句时,返回的行数可能会略微偏离我们期望的数量。

以上就是在 SQL Server 中有效地返回随机行的方法。我们可以根据具体业务需求选择适合自己的方法。