我试图使用rand()或newid()来选择记录的随机子集,但是每当我运行以下命令时,我总是会得到相同的结果:
SELECT *,rand() as rid
INTO #mytable
FROM othertable
select top 10 * from #mytable order by rid
我已经尝试过这种方法的所有变体,但是当我像上面那样做时,似乎sybase服务器iq总是返回相同的rand()值。当我尝试去做
SELECT * FROM othertable order by newid()
我收到一条错误消息,指出按顺序使用newid()是非法的。
有什么建议?
最佳答案
在Sybase T-SQL中,NEWID()系统函数生成人类可读的全局唯一ID。在目标表上发出SELECT语句时,在ORDER BY子句中包括NEWID()系统函数。
用法:
SELECT top 10 id from TABLE order by NEWID();
关于sql - 在SQL中选择随机子集(Sybase Server IQ),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9792676/