不使用 DBMS_RANDOM 的 Oracle 随机数生成器存储过程 [英] Oracle Random Number Generator Stored Procedure without using DBMS_RANDOM
本文介绍了不使用 DBMS_RANDOM 的 Oracle 随机数生成器存储过程的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我无权访问 DBMS_RANDOM 包,因此我想创建自己的存储过程以在 Oracle 中生成随机数.有谁知道我该怎么做?
I don't have access to the DBMS_RANDOM package, so I would like to create my own stored procedure to generate random numbers in Oracle. Does anyone know how I might do that?
提前致谢!
我试图从每个州生成一个随机行.这是我的代码:
I am trying to generate a random row from each state. This is my code:
SELECT Z.* FROM (
SELECT A.*, ROW_NUMBER() OVER (PARTITION BY A.STATE ORDER BY (
select to_char(systimestamp,'ff') from dual)) AS ROW_ID
FROM STATE_TABLE A ) Z WHERE Z.ROW_ID=1;
每次运行时它都会给我相同的行,但我希望每次运行时它都会给我不同的行.请帮忙?
It gives me the same rows everytime I run it, but I want it to give me different rows everytime I run it. Help please?
推荐答案
如果要从表中随机选择行,可以使用 SAMPLE 子句
If you want to select random rows from the table you can use SAMPLE clause
SELECT * FROM mytable SAMPLE(4);
这会让您随机选择所有行的 4%.
This gives you randomly selected 4% of all rows.
这篇关于不使用 DBMS_RANDOM 的 Oracle 随机数生成器存储过程的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文