有一个表名Top_Up
。它目前的快照是:
当我在其上运行查询SELECT * FROM Top_Up WHERE Top_up_ID = (round(random() * 9 ) + 1);
时,我会得到随机结果。有时它会返回两个元组,有时没有元组,有时还有一个元组。
要调试我运行查询Select (round(random() * 9 ) + 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()