随机获取或从表中排

时间:2014-08-11 13:31:30

标签: sql tsql random

我需要你的帮助...一个小问题。 我有一个应该在表中访问的java服务,从表中获取一个随机行

我的表很简单:它只包含两个cols:

"Id"        INT IDENTITY(1,1) NOT NULL Primary Key
"Datas"     Varchar(64)       NOT NULL

Id 是一个渐进数字,因此您应该认为创建一个随机数并获取id = randomic_number的行就足够了。

但是我在表格中有很多差距。例如,表的样本可以是:

  ID    Datas
  1     Row1
  2     Row2
  3     Row3
  8     Row4
 10     Row5
 25     Row6
639     Row7

有一种非常时尚的方式可以随机获得一行吗?没有条件必须......只是随机的! 我使用sql srv 2000。

我会避免......

select *

然后使用随机数循环整个Resultset ...因为它可以包含非常多的行....

2 个答案:

答案 0 :(得分:4)

你应该能够按照以下方式做点什么:

SELECT TOP 1 * FROM mytable ORDER BY newid()

注意:这是#52964的副本,而后者又是#19412

的副本

答案 1 :(得分:0)

我建议在表格中输入最后一个ID

SELECT TOP 1 Id FROM table_name ORDER BY Id DESC

然后假设它存储在maxId变量中,您可以在index1之间生成一个随机数maxId并执行:

SELECT TOP 1 * FROM table_name WHERE Id > index

那就是

相关问题