不使用 DBMS_RANDOM 的 Oracle 随机数生成器存储过程 [英] Oracle Random Number Generator Stored Procedure without using DBMS_RANDOM

查看:22
本文介绍了不使用 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆