一尘不染

如何在SQL中随机选择行?

sql

我正在使用MSSQL Server2005。在我的数据库中,我有一个表“ customerNames”,其中有两列“ Id”和“
Name”以及大约。1,000个结果。

我正在创建一个功能,每次必须随机选择5个客户。谁能告诉我如何创建一个查询,该查询每次执行查询时都会随机获得5行(Id和Name)?


阅读 232

收藏
2021-05-05

共1个答案

一尘不染

SELECT TOP 5 Id, Name FROM customerNames
ORDER BY NEWID()

也就是说,似乎每个人都可以访问此页面,以获取对您的问题的更一般的答案:

在SQL中选择随机行

使用MySQL选择一个随机行:

SELECT column FROM table
ORDER BY RAND()
LIMIT 1

使用PostgreSQL选择一个随机行:

SELECT column FROM table
ORDER BY RANDOM()
LIMIT 1

使用Microsoft SQL Server选择一个随机行:

SELECT TOP 1 column FROM table
ORDER BY NEWID()

使用IBM DB2选择随机行

SELECT column, RAND() as IDX 
FROM table 
ORDER BY IDX FETCH FIRST 1 ROWS ONLY

使用Oracle选择一个随机记录:

SELECT column FROM
( SELECT column FROM table
ORDER BY dbms_random.value )
WHERE rownum = 1

选择一个带有sqlite的随机行:

SELECT column FROM table 
ORDER BY RANDOM() LIMIT 1
2021-05-05