精华内容
下载资源
问答
  • Oracle取随机数

    千次阅读 2019-07-12 17:15:24
    1.随机数 2.应用 1.随机数 1、从表中随机记录 select * from (select * from test order by dbms_random.random) where rownum < 4 表示从test表中随机3条记录 2、产生随机数 SELECT DBMS_...

    目录

    1.取随机数

    2.应用


    1.取随机数

    1、从表中随机取记录
    
         select * from (select * from test order by dbms_random.random) where rownum < 4
    
         表示从test表中随机取3条记录
    
    2、产生随机数
    
             SELECT DBMS_RANDOM.RANDOM FROM DUAL;  -- 产生一个任意大小的随机数
    
             SELECT ABS(MOD(DBMS_RANDOM.RANDOM,100)) FROM DUAL;   -- 产生一个100以内的随机数
    
             SELECT TRUNC(100+900*dbms_random.value) FROM dual;   -- 产生一个100~1000之间的随机数
    
             SELECT dbms_random.value FROM dual;    -- 产生一个0~1之间的随机数
    
             SELECT dbms_random.value(10,20) FROM dual;   -- 产生一个10~20之间的随机数
    
             SELECT dbms_random.normal FROM dual;   -- NORMAL函数返回服从正态分布的一组数。此正态分布标准偏差为1,期望值为0。这个函数返回的数值中有68%是介于-1与+1之间,95%介于-2与+2之间,99%介于-3与+3之间。
    
    3、产生随机字符串
    
             select dbms_random.string('P',20) from dual;   -- 第一个参数 P 表示 printable,即字符串由任意可打印字符构成 ;第二个参数表示返回字符串长度
    
    4、ceil( n )函数是返回大于或等于n的最小整数。
         DBMS_RANDOM.VALUE()是随机产生( 0,1 )之间的数。
    目的:要产生两位的随机数
    
    方法:可以DBMS_RANDOM.VALUE()*100,这样产生( 0,100 )
    的随机数,当产生( 0,10)之间的数时,只要加上10就可以保证产生的数都是两位了。
    
    
    
    ORACLE的PL/SQL提供了生成随机数和随机字符串的多种方式,罗列如下:
    1、小数( 0 ~ 1)
         select dbms_random.value from dual
    2、指定范围内的小数 ( 0 ~ 100 )      
    
         select dbms_random.value(0,100) from dual
    3、指定范围内的整数 ( 0 ~ 100 )
         select trunc(dbms_random.value(0,100)) from dual
    4、长度为7的随机数字串
         select substr(cast(dbms_random.value as varchar2(38)),3,7) from dual
    5、正态分布的随机数
         select dbms_random.normal from dual
    6、随机字符串
         select dbms_random.string(opt, length) from dual
          opt可取值如下:
            'u','U':大写字母
            'l','L':小写字母
            'a','A':大、小写字母
            'x','X':数字、大写字母
            'p','P':可打印字符
    7、随机日期
         select to_date(2454084+TRUNC(DBMS_RANDOM.VALUE(0,365)),'J') from dual
         通过下面的语句获得指定日期的基数
         select to_char(sysdate,'J') from dual
    8、生成GUID
         select sys_guid() from dual
    --生成带分隔符(-)的GUID的自定义函数
    
    create or replace function my_guid return varchar2 is     guid varchar(36);     temp varchar(32); begin     temp:=sys_guid();   
      guid:= substr(temp,1,8) || '-'          ||substr(temp,9,4) || '-'          ||substr(temp,13,4)|| '-'          ||substr(temp,17,4)|| '-'        
      ||substr(temp,21,12);     return guid; end;
    9.获取毫秒时间
    select To_Char(current_timestamp,'yyyymmddhh24missff') from dual

    2.应用

    --将test1的args0截取25位并拼接7位随机数插入到test0的args0

    insert into test0 (args0,args1) select substr(t1.args0,1,25)||substr(cast(dbms_random.value as varchar2(38)),3,7),t1.args1 from test1 t1;

     

    展开全文
  • oracle取随机数

    2013-04-08 21:04:19
    oracle产生随机字符型,数值型或生成GUID
  • ORACLE 唯一数据

    2019-10-14 20:07:17
    set define off; BEGIN -- 输出SQL文件名,便于从输出日志定位到SQL文件。 dbms_output.put_line('01_CREATE_V_ITP_USER_ROLE.SQL'); -- 输出SQL程序编写者,便于有问题快速找到编写者查问题 ...

    set define off;
    BEGIN
      -- 输出SQL文件名,便于从输出日志定位到SQL文件。
      dbms_output.put_line('01_CREATE_V_ITP_USER_ROLE.SQL');
      -- 输出SQL程序编写者,便于有问题快速找到编写者查问题
      dbms_output.put_line('作者: 刘*,IP:141');
    END;

    CREATE OR REPLACE VIEW V_ITP_USER_ROLE AS
    SELECT TRA.EMPLOYEE_ID USER_ID,
           TRA.ROLE_ID ROLE_CODE,
           (SELECT DECODE(LENGTH(E.EMPLOYEE_FULL_NO),
                           10,2,1)  FROM TCM_EMPLOYEE E WHERE E.OID = TRA.EMPLOYEE_ID )  USER_TYPE,
           DECODE(TRA.ENNABLE_FLAG, 'T', '1', '0') STATUS,
           TO_CHAR(TRA.LASTUPDATEDTIME,'yyyy-mm-dd hh:mi:ss') LAST_UPDATED_DATE
      FROM (SELECT T.*,COUNT(1)OVER(PARTITION BY T.EMPLOYEE_ID,T.ROLE_ID,T.ENNABLE_FLAG ORDER BY T.ENNABLE_FLAG DESC, T.LASTUPDATEDTIME DESC)RN FROM TCM_ROLE_AUTH T)TRA WHERE TRA.RN=1; 
    set define on; 

    展开全文
  • ORACLE取当前年的第一

    千次阅读 2014-05-15 10:13:33
    [code="SQL"]SELECT TRUNC(SYSDATE,'YYYY') FROM DUAL;[/code]
    SELECT TRUNC(SYSDATE,'YYYY') FROM DUAL;
    展开全文
  • AIX系统利用Oracle取前N日期

    千次阅读 2010-06-23 20:58:00
    1、在Linux上可以用date -d "x days ago" +%Y%m%d命令取得X以前的日期,但在AIX、HP-UX及WIN的BAT上就没有如此方便的命令了。在网上海找了半天,没发现较好的方法,最后想想何不SHELL结合ORACLE来做。本例是...

    1、 Linux上可以用date -d "x days ago" +%Y%m%d命令取得X天以前的日期,但在AIXHP-UXWINBAT上就没有如此方便的命令了。在网上海找了半天,没发现较好的方法,最后想想何不SHELL结合ORACLE来做。本例是在AIX上试验,但在HP-UX上是一样的道理,应该也可以的,在DOS上的做法可以参考http://blog.csdn.net/nsj820/archive/2010/06/03/5645768.aspx中使用到的方法。

    2、 AIXSHELL脚本如下:

    maintain.sh

     

    3、 中间临时文件内容

    ago10.txt

     

    4、 说明

     

    (1)Shell中如果牵涉到Crontab调度问题,就写出ORACLE_HOMEORACLE_SID环境变量,sqlplus命令写上完全路径,以免系统找不到;如果是手工调度,这些是不需要的。

    (2)、最N天前日期时用到了awk命令,awk 'NR==4' ago10.txt表示取文件的第四行;根据中间临时文件生成的不同,略做改动。

    (3)、最后一步是跟据取出的日期变量,进行系统操作:如生成、删除以日期后缀的文件或目录等。

    展开全文
  • oracle取当前日期前一周的各

    千次阅读 2017-12-29 16:17:46
    select to_char(TRUNC(sysdate)-interval '7' day + LEVEL,'yyyy-MM-dd') AS ...前多少就把两个7改为多少就可以了 图片未弄上来。执行以下就可以看到结果。 之后再用left join 等就可以达到统计各数据的效果。
  • Oracle取最大/最小值函数

    千次阅读 2021-01-07 14:46:46
    Oracle取最大/最小值函数 SELECT greatest(1,3,5,7,9) 最大值, least(1,3,5,7,9) 最小值 FROM dual;
  • oracle 最大值的问题

    2015-11-11 03:44:49
    我只想第一条,我知道可以用rownum=1 来 但是 对单条数据可以,多条数据 就不行了,有重复字段。可能也不到 Oracle的group by帮我分了2组 。 请问 怎么在多条数据的情况下,只某个id的1条数据,不让有重复的...
  • oracle取最新一条数据

    万次阅读 2019-05-20 17:53:40
    好几年没用过oracle了,都忘记了。 最近在做一个项目,数据库就是用的oracle,正好有个获取最新一条数据的需求。 在网上参考了他人的sql,放在自己这儿就是不行。下边是他们的sql SELECT * FROM ( SELECT *,ROWNUM ...
  • ORACLE取SQL日期的年月日 SQL方法: 取SQL日期的年份: Select Extract(year from sysdate)as year from dual ; 取SQL日期的月份: Select Extract(month from sysdate)as year from dual ; 取SQL日期的一月中的第...
  • oracle取10至20行

    千次阅读 2010-02-26 10:10:00
    oracle取前10行 select * from tableName where rownum oracle取10至20行 select * from (select t.*,rownum r from tableName t where rownum=10;
  • oracle 当天日期减一 应该如何写

    千次阅读 2017-09-13 09:58:00
    select sysdate-1 from dual; 本文转自左正博客园博客,原文链接:http://www.cnblogs.com/soundcode/archive/2012/01/11/2319060.html,如需转载请自行联系原作者 ...
  • Oracle取上个整月数据SQL

    千次阅读 2017-02-23 17:10:52
    1.通过自动当前上个月一号到上个月底的方案实现-- 上个月第一 SELECT TO_CHAR(LAST_DAY(ADD_MONTHS(SYSDATE, -2)) + 1,'YYYYMMDD') FROM DUAL; -- 查询结果:20160801-- 上个月最后一 SELECT TO_CHAR...
  • oracle 平均数

    万次阅读 2013-09-28 11:04:06
    oracle 取得平均值用avg ,不过avg函数在计算时,不包含任何值为 null 的资料 测试一下: 数据是这样的: 数据中有个故意设置成空的 select avg(english) from studentresult; 此时的平均值是:3.5...
  • 去前10条记录select * from table where rownum 中间记录 方法一:select * from (select rownum id,* from table where 1=1 order by field ) where id > 11 and id 方法二:select * from (select r
  • Oracle取短日期格式

    千次阅读 2016-10-18 00:29:23
    Oracle数据库中取出的日期直接变成短日期格式,即yyyy-m-d,一位数月和日时不用在前面补充0,找到对应的视图脚本,原来是用to_char函数来格式化取出的日期数据,to_char(sysdate,'yyyy-mm-dd'),而oracle的to_char...
  • 例如我有一张表A 姓名 时间 A 2016-03-12 12:12:12 B 2016-05-22 9:12:12 C 2016-04-12 4:12:12 D 2016-03-24 16:12:12 E 2016-07-12 7:12:12 我想要 2016-03-22 至 2016-09-11这个...请问下这个oracle语句该怎么写
  • oracle取时间最大的一条数据

    万次阅读 2017-05-25 10:27:47
    oracle取时间最大的一条数据的两种方法 建议使用第一种 数据量大的可以加上索引以提高效率1.select * from (select t.regtime, t.nechen,t.id from memberinfo t order by regtime desc) where rownum=1 2.select t...
  • oracle 前N条记录

    千次阅读 2017-02-07 15:44:34
    1.oracle 前10条记录  1) select * from tbname where rownum  2) select * from (select * from tbname order by id desc ) where rownum   下面是关于rownum的介绍 ==========================...
  • Oracle日期不时间

    千次阅读 2020-02-20 16:10:55
    完整的日期时分秒格式 select TO_CHAR(Sysdate, 'YYYY-MM-DD hh24:mi:ss') from Dual; 运行结果如下: 日期+时分 select TO_CHAR(Sysdate, 'YYYY-MM-DD hh24:mi') from Dual;...select TO_CHAR(Sysdate, 'YYYY-MM.....
  • oracle取上个月日期

    千次阅读 2019-06-20 09:14:42
    select to_char(add_months(trunc(sysdate),-1),'yyyymm') from dual;字符串格式为YYYYMM SELECT add_months(trunc(sysdate),-1) FROM DUAL;日期格式
  • Oracle取小数点部分

    千次阅读 2014-07-29 10:36:15
    select substr(12.23-floor(12.23),2,10) from dual; 优化的算法 select ltrim(12.55523-floor(12.55523),'0.') from dual;
  • oracle取序列的下一个值

    千次阅读 2019-03-07 16:17:54
    select SEQ_SERIAL.nextval from dual dual是oracle的虚拟表; SEQ_SERIAL是自己定义的序列名称; SEQ_SERIAL.nextval就是序列的下一个值
  • 主要介绍了oracle 某个时间的数据(每周几的上午几点到几点),本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
  • Oracle 某段时间的每一的日期

    千次阅读 2016-09-06 11:38:33
    SELECT TO_DATE('2016-01-01', 'yyyy-MM-dd') + ROWNUM - 1 as daylist,TO_DATE('2016-01-01', 'yyyy-MM-dd') + ROWNUM as daylists FROM DUAL CONNECT BY ROWNUM trunc(to_date('2016-07-31', 'yyyy-MM-dd') -
  • oracle 当天时间数据

    万次阅读 2018-07-16 14:56:56
    select * from 表 whereTO_CHAR(TO_DATE(时间字段,'yyyy-mm-dd hh24:mi:ss'),'yyyymmdd')=TO_CHAR(SYSDATE,'yyyymmdd')或select * from 表 where时间字段&gt;=TRUNC(SYSDATE) and 时间字段&...
  • EXCEL连接oracle数据库数!excel使用vba直接连oracle数据库查询数据,填写到excel中!参考压缩包中的《readme_EXCEL连接oracle数据库数_操作手册.docx》进行测试!
  • oracle 整点时间数据

    千次阅读 2014-07-20 14:20:32
    select j.tm,j.*,t.*, g.ORG_NM, g.ORG_SHNM  from ST_GRW_REGMON_R j  left join ST_HDGSTBPRP_B t  on j.STCD = t.STCD ... left join ST_ADMA_B g ...用to_char将日期传成char,只mi和ss。
  • SELECT '前一前一小时前一分钟前一秒' TITLE,   TO_CHAR(SYSDATE - 1 - 1 / 24 - 1 / 24 / 60 - 1 / 24 / 60 / 60,   'yyyy-mm-dd hh24:mi:ss') TIME   FROM DUAL  UNION ALL  SELECT '一...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 159,107
精华内容 63,642
关键字:

oracle取天