sql查询使用WHERE返回多个结果

时间:2012-11-07 21:51:02

标签: sql database postgresql select

有一个表名Top_Up。它目前的快照是: Top_Up Table

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

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

为什么我会得到这种含糊不清的随机结果?

1 个答案:

答案 0 :(得分: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()