我正在尝试使用 rand() 或 newid() 选择随机的记录子集,但每次运行以下命令时,我总是得到相同的结果:
SELECT *,rand() as rid
INTO #mytable
FROM othertable
select top 10 * from #mytable order by rid
我已经尝试了它的每一种变体,但是当我像上面那样做时,sybase server iq 似乎总是返回相同的 rand() 值。当我尝试做的时候
SELECT * FROM othertable order by newid()
我收到一条错误消息,指出在 order by 中使用 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/