sql - 在 SQL 中选择随机子集 (Sybase Server IQ)

标签 sql random sap-iq

我正在尝试使用 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/

相关文章:

sql - 如何从 Years 表创建 YearMonths 表?

mysql - 如何更新 mysql 查询中的列

javascript - Math.random 产生多少熵?

random - Mlib RandomForest (Spark 2.0) 预测单个向量

algorithm - 从许多其他随机数中随机数,它更随机吗?

python - 客户端使用 Python3 连接到 sybase IQ

sql - 如何在 Oracle 中创建一个临时表作为另一个表的副本?

sql - RETURN 在带有 TRY-CATCH block 的事务内

hadoop - 执行 sqoop eval 命令时出错

java - Sybase IQ 的批量复制实用程序