原文:http://blog.sina.com.cn/s/blog_a26966d90102wwkb.html

oracle中 rownum 与 connect by的结合使用

SELECT ROWNUM FROM DUAL CONNECT BY ROWNUM <= N 可以生成1到N的整数序列,N是想要生成的序列的个数,可以是整数,也可以是查询得出的整数,例如:

 
SELECT ROWNUM FROM DUAL CONNECT BY ROWNUM <= 7

 

1.  生成1000个随机数

SELECT ROWNUM RN,

DBMS_RANDOM.VALUE(0, 1000) RANDOM

FROM DUAL

CONNECT BY ROWNUM <= 1000;

注:DBMS_RANDOM.VALUE(A, B)是随机数产生函数, A是区间的开始,B是区间的结束

2.  例如:拆分以逗号隔开的 A,B,C,D  字符串

SELECT REGEXP_SUBSTR('A,B,C,D',  '[^,]+',   1,   ROWNUM)

FROM DUAL

CONNECT BY ROWNUM <= REGEXP_COUNT('A,B,C,D',  '[,]',  1) + 1;

注:REGEXP_SUBSTR是字符串截取正则表达式:A,B,C,D 是要截取的字符串;[^,]+ 是正则表达式匹配模式,匹配以非逗号的任意字符开始,以非逗号的任意字符结束的一段字符, 1 是从第一个字符开始, ROWNUM 是匹配的第 ROWNUM 字符串。

REGEXP_COUNT是数量查询正则表达式:A,B,C,D 是要截取的字符串;[,] 是正则表达式匹配模式,匹配以逗号, 1 是从第一个字符开始; REGEXP_COUNT + 1 就可以算出有多少个子字符串

3.  列出两个月份之间所有的月份

SELECT TO_CHAR(ADD_MONTHS(DATE'2009-03-01', ROWNUM-1), 'YYYY-MM') MONTHS

FROM DUAL

CONNECT BY ROWNUM <= MONTHS_BETWEEN(DATE'2010-03-01', DATE'2009-03-01') + 1;

4.  列出两个日期之间所有的天

SELECT TO_CHAR(DATE'2009-05-11' + ROWNUM - 1, 'YYYY-MM-DD') AS DAYS

FROM DUAL

CONNECT BY ROWNUM <= DATE'2009-05-23' - DATE'2009-05-11' + 1

oracle中 rownum 与 connect by的结合使用的更多相关文章

  1. ORACLE 中ROWNUM用法总结(转)

    ORACLE 中ROWNUM用法总结! 对于 Oracle 的 rownum 问题,很多资料都说不支持>,>=,=,between...and,只能用以上符号(<.<=.!=) ...

  2. oracle 中 rownum 和 row_number()

    简单的介绍下oracle 中rownum 和 row_number() 使用,实例演示. 参照:http://www.cnblogs.com/zjrstar/archive/2006/08/31/49 ...

  3. oracle中rownum和rowid的区别

    rownum和rowid的区别总括: rownum和rowid都是伪列,但是两者的根本是不同的. rownum是根据sql查询出的结果给每行分配一个逻辑编号,所以你的sql不同也就会导致最终rownu ...

  4. ORACLE 中ROWNUM用法总结!

    ORACLE 中ROWNUM用法总结! 对于 Oracle 的 rownum 问题,很多资料都说不支持>,>=,=,between...and,只能用以上符号(<.<=.!=) ...

  5. Oracle中rownum的基本用法

    Oracle中rownum的基本用法 对于rownum来说它是oracle系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是2,依此类推,这个伪字段可以用于限制查询返回的总行数,且r ...

  6. ORACLE 中ROWNUM

    ORACLE 中ROWNUM用法总结! 对于 Oracle 的 rownum 问题,很多资料都说不支持>,>=,=,between...and,只能用以上符号(<.<=.!=) ...

  7. Oracle中rownum和rowid的理解

    rownum,rowid都叫伪列. 但是,rownum是逻辑上的编号,且其值总是从1开始,每行的rounum不是固定的.而rowid是“物理”编号.若数据库文件没有移动,则每行的 rowid一般是固定 ...

  8. oracle中rownum和rowid的区别【转】

    rownum和rowid的区别总括: rownum和rowid都是伪列,但是两者的根本是不同的. rownum是根据sql查询出的结果给每行分配一个逻辑编号,所以你的sql不同也就会导致最终rownu ...

  9. 转:ORACLE 中ROWNUM用法总结!

    oracle 分页查询语句:select * from (select u.*,rownum r from (select * from userifno) u where rownum<大值) ...

随机推荐

  1. 使用wc统计代码行数

    最近写了一些代码,想统计一下代码的行数,在eclipse中好像没这功能,网上搜了一下才发现原来Linux有一个统计文件行数的命令wc.使用wc可以打印出每个文件和总文件的行数.字数和字节数,如果没有指 ...

  2. Nginx服务器防止被压力测试

    最近经常用人帮忙做压力测试,用webbech或者ab等一些工具模拟并发压服务器,若服务器没有限制连接数或带宽,服务器很容易被压跨.cat nginx.conf…http {…limit_conn_zo ...

  3. OGNL是Object-Graph Navigation Language的缩写,它是一种功能强大的表达式语言

    OGNL是Object-Graph Navigation Language的缩写,它是一种功能强大的表达式语言(ExpressionLanguage,简称为EL),通过它简单一致的表达式语法,可以存取 ...

  4. java为安全起见对Applet有所限制

    Applet消亡的原因: ①java为安全起见对Applet有所限制:Applet不允许访问本地文件信息.敏感信息,不能执行本地指令(比如FORMAT),不能访问初原服务器之外的其他服务器. ① IE ...

  5. MyBitis(iBitis)系列随笔之三:简单实现CRUD

    Mybitis(iBitis)实现对对象增删改查操作要借助<select/>查询,<insert/>增加,<update/>更新,<delete/>删除 ...

  6. MFC存储图片到SQL Server数据库

    第一步:建立数据库表,比如:id char,pic image. 第二步:建立MFC单文档应用程序,再添加类CMyRecordset,基类选择CRecordset,导入数据库的刚建立的表. 第三步:在 ...

  7. Powershell理解汇总

    官方帮助文档https://msdn.microsoft.com/zh-cn/powershell/scripting/powershell-scripting 管道/重定向 管道 :  是指把上一条 ...

  8. redis的简单操作

    今天在代码中使用hset存入redis中:jedis.hset(key.getBytes(), field.getBytes(), ObjectInfoPojo); 需要在redis中去验证数据是否存 ...

  9. 应用开发之WinForm开发

    本章简言 上一章笔者介绍了关于WinForm环境.这一章笔者将继续讲WinForm.只不过更加的面向开发了.事实就是在学习工具箱里面的控件.对于WinForm开发来讲,企业对他的要求并没有那么高.但是 ...

  10. Java Web项目--显示一个静态页面

    我们可以在Eclipse中新建一个Dynamic Web Project,然后在项目的WebContent目录下新建一个Html文件page1.html,其内容如下: <!DOCTYPE htm ...