> 데이터 베이스 > MySQL 튜토리얼 > Oracle如何实现从特定组合中随机读取值

Oracle如何实现从特定组合中随机读取值

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
풀어 주다: 2016-06-07 16:00:32
원래의
1206명이 탐색했습니다.

在这里,我们会用到DBMS_RANDOM包和CASE WHEN语句,思路如下:利用DBMS_RANDOM.RANDOM函数随机生成数值,然后对数值进行取模,如

在这里,我们会用到DBMS_RANDOM包和CASE WHEN语句,思路如下:

一、利用DBMS_RANDOM.RANDOM函数随机生成数值,,然后对数值进行取模,如果我们要在10个元素中随机读取的话,那我们需要对10进行取模。

二、再将取模后的值利用CASE WHEN语句与元素进行关联。

譬如,我有一个组合,里面包含“北京”,“上海”,“广州”,“深圳”,“武汉”五个元素,想从这五个元素中随机读取值来填充表的某个字段。

首先,创建测试表

SQL> create table test(loc varchar2(2 char));

Table created.

构造能随机读取元素的SQL语句

 

select case mod(abs(dbms_random.random),5)
      when 1 then '北京'
      when 2 then '上海'
      when 3 then '广州'
      when 4 then '深圳'
      else '武汉' end "LOC"
from dual;

 

大批量填充test表的loc字段

 

begin
  for i in 1..10 loop
    insert into test values(case mod(abs(dbms_random.random),5)
          when 1 then '北京'
          when 2 then '上海'
          when 3 then '广州'
          when 4 then '深圳'
          else '武汉' end );
  end loop;
end;

 

最后生成的结果如下:

 

SQL> select * from test;

LOC
--------
武汉
广州
上海
北京
上海
武汉
北京
上海
武汉
深圳

10 rows selected.

本文永久更新链接地址

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿