我使用的是MSSQL Server 2005。在我的db中,我有一个表“customerNames”,它有两列“Id”和“名称”和大约。1000年的结果。
我正在创建一个功能,每次都必须随机选择5个客户。谁能告诉我如何创建一个查询,将获得随机5行(Id,和名称)每次查询执行时?
我使用的是MSSQL Server 2005。在我的db中,我有一个表“customerNames”,它有两列“Id”和“名称”和大约。1000年的结果。
我正在创建一个功能,每次都必须随机选择5个客户。谁能告诉我如何创建一个查询,将获得随机5行(Id,和名称)每次查询执行时?
当前回答
如果你使用的是一个大表,想要访问10%的数据,那么运行下面的命令:SELECT TOP 10% * FROM Table1 ORDER BY NEWID();
其他回答
也许这个网站会有帮助。
对于那些不想点击浏览的人:
SELECT TOP 1 column FROM table
ORDER BY NEWID()
SELECT TOP 5 Id, Name FROM customerNames ORDER BY NEWID()
如果你使用Yandex数据库,那么你应该使用
select column from table order by random (TableRow()) limit 1;
我发现这对大数据最有效。
SELECT TOP 1 Column_Name FROM dbo.Table TABLESAMPLE(1 PERCENT);
TABLESAMPLE(n ROWS)或TABLESAMPLE(n PERCENT)是随机的,但需要添加TOP n以获得正确的样本量。
在大型表上使用newwid()非常慢。
SELECT * FROM TABLENAME ORDER BY random() LIMIT 5;