Adr*_*ian 13 oracle random row
我找到了这个解决方案,用于从Oracle中的表中选择一个随机行.实际上是以随机方式对行进行排序,但您只能获取随机结果的第一行.
SELECT *
FROM table
ORDER BY dbms_random.value;
Run Code Online (Sandbox Code Playgroud)
我只是不明白它是如何工作的.在ORDER BY之后,它应该是用于排序的列.我看到"dbms_random.value"返回一个小于零的值.这种行为可以解释还是就是这样?
谢谢
Kev*_*ton 23
你也可以这样想:
SELECT col1, col2, dbms_random.value
FROM table
ORDER BY 3
Run Code Online (Sandbox Code Playgroud)
在此示例中,数字3 =第三列
当你通过dbms_random.value订购时,Oracle按表达式排序,而不是列.对于每个记录,Oracle计算一个随机数,然后按此数字排序.
以类似的方式,是这样的:
select * from emp order by upper(ename);
Run Code Online (Sandbox Code Playgroud)
您有基于功能的订单.
| 归档时间: |
|
| 查看次数: |
15020 次 |
| 最近记录: |