2

有一个表名Top_Up。它当前的快照是: 充值表

当我对其运行查询SELECT * FROM Top_Up WHERE Top_up_ID = (round(random() * 9 ) + 1);时,我得到随机结果。有时它返回两个元组,有时没有元组,有时返回一个元组。

为了调试,我运行查询Select (round(random() * 9 ) + 1);,它总是在结果中只返回一个元组。

为什么我得到这个模糊和随机的结果?

4

1 回答 1

3

每行计算轮次。尝试这个:

SELECT TOP 1 * FROM Top_Up ORDER BY (round(random() * 9 ) + 1);

如果你对你的表运行测试,你应该会看到一个非常不同的结果:

 Select (round(random() * 9 ) + 1) FROM Top_Up `

如果你只想要一个随机记录,我会选择:

SELECT TOP 1 * FROM Top_Up ORDER BY NEWID()
于 2012-11-07T22:01:25.673 回答