oracle的分页显示-字符串截取-递归查询
2017-08-08 16:12
190 查看
====================================================
1.oracle 分页查询
参考:http://blog.csdn.net/anxpp/article/details/51534006
====================================================
>>>>>>>>>>>>>>>>>无order by情况下<<<<<<<<<<<<<<<<<<<
====================================================
select * from user where rownum >=3 and rownum <=4;
----------------------------------------------------
oracle机制是第一条行号数据不符合>=3,去掉,原来的第
二行变为第一行,行号还是为1,一直不符合
====================================================
select id,name from(
select rownum rn,u.* from user u)ua
where ua.rn between 3 and 4;
----------------------------------------------------
将行号查询出来生成一个结果集ua,然后在这个结果集中选择
行号大于我们设定的那个值
====================================================
select id,name from(
select rownum rn,u.* from user u where rownum <= 4) ua
where ua.rn >=3 ;
----------------------------------------------------
优化!
====================================================
====================================================
>>>>>>>>>>>>>>>有order by情况下<<<<<<<<<<<<<<<<<<<<<
====================================================
select id,name from (
(select rownum rn,uo.* from
(select * from user u order by name)uo
where rownum <=4)) ua
where ua.rn >=3;
====================================================
====================================================
2.oracle 字符串截取函数
====================================================
SUBSTR 截取子串 INSTR 获取子字符串的位置 注意:!!!substr开始位置从0 instr开始位置从1
通常二者结合使用
例:选取"C3411.907w15"字符串中"."后的字符串
substr("C3411.907w15",instr("C3411.907w15",'.',1,1)+1)
substr("源字符串",开始位置,选取长度)
instr("源字符串","子字符串",开始位置,第几次出现)
=====================================================
For example:
substr("ABCDEFG", 0); //返回:ABCDEFG,截取所有字符
substr("ABCDEFG", 2); //返回:CDEFG,截取从C开始之后所有字符
substr("ABCDEFG", 0, 3); //返回:ABC,截取从A开始3个字符
substr("ABCDEFG", 0, 100); //返回:ABCDEFG,100虽然超出预处理的字符串最长度,但不会影响返回结果,系统按预处理字符串最大数量返回。
substr("ABCDEFG", -3); //返回:EFG,注意参数-3,为负值时表示从字符串末尾开始查找,字符串排列位置不变。
====================================================
3.oracle 递归查询
参考:http://www.cnblogs.com/wanghonghu/archive/2012/08/31/2665945.html
====================================================
select * from table
start with 条件一
connect by prior id=parent_id;递归父节点查询/递归子节点查询connect by id = prior parent_id;
1.oracle 分页查询
参考:http://blog.csdn.net/anxpp/article/details/51534006
====================================================
>>>>>>>>>>>>>>>>>无order by情况下<<<<<<<<<<<<<<<<<<<
====================================================
select * from user where rownum >=3 and rownum <=4;
----------------------------------------------------
oracle机制是第一条行号数据不符合>=3,去掉,原来的第
二行变为第一行,行号还是为1,一直不符合
====================================================
select id,name from(
select rownum rn,u.* from user u)ua
where ua.rn between 3 and 4;
----------------------------------------------------
将行号查询出来生成一个结果集ua,然后在这个结果集中选择
行号大于我们设定的那个值
====================================================
select id,name from(
select rownum rn,u.* from user u where rownum <= 4) ua
where ua.rn >=3 ;
----------------------------------------------------
优化!
====================================================
====================================================
>>>>>>>>>>>>>>>有order by情况下<<<<<<<<<<<<<<<<<<<<<
====================================================
select id,name from (
(select rownum rn,uo.* from
(select * from user u order by name)uo
where rownum <=4)) ua
where ua.rn >=3;
====================================================
====================================================
2.oracle 字符串截取函数
====================================================
SUBSTR 截取子串 INSTR 获取子字符串的位置 注意:!!!substr开始位置从0 instr开始位置从1
通常二者结合使用
例:选取"C3411.907w15"字符串中"."后的字符串
substr("C3411.907w15",instr("C3411.907w15",'.',1,1)+1)
substr("源字符串",开始位置,选取长度)
instr("源字符串","子字符串",开始位置,第几次出现)
=====================================================
For example:
substr("ABCDEFG", 0); //返回:ABCDEFG,截取所有字符
substr("ABCDEFG", 2); //返回:CDEFG,截取从C开始之后所有字符
substr("ABCDEFG", 0, 3); //返回:ABC,截取从A开始3个字符
substr("ABCDEFG", 0, 100); //返回:ABCDEFG,100虽然超出预处理的字符串最长度,但不会影响返回结果,系统按预处理字符串最大数量返回。
substr("ABCDEFG", -3); //返回:EFG,注意参数-3,为负值时表示从字符串末尾开始查找,字符串排列位置不变。
====================================================
3.oracle 递归查询
参考:http://www.cnblogs.com/wanghonghu/archive/2012/08/31/2665945.html
====================================================
select * from table
start with 条件一
connect by prior id=parent_id;递归父节点查询/递归子节点查询connect by id = prior parent_id;
相关文章推荐
- postgresql的分页显示-截取字符串-递归查询
- oracle中实现截取字符串(substr)、查找字符串位置(instr)、替换字符串(replace)
- 关于oracle中字符串的截取——substr
- oracle 如何截取两个"-"之间的字符串
- Oracle字符串截取
- Oracle日期、字符串格式化函数,位数不足前面加0,一位数字显示两位,格式化数字为定长
- 截取字符串 超长 用冒号显示
- oracle中对字母加数字列的排序及截取字符串函数substr介绍
- oracle分页显示
- 几种常见的字符串长度截取显示方法
- oracle 截取字符串最后几位
- ASP.net:截取固定长度字符串显示在页面,多余部分显示为省略号
- Oracle截取字符串去掉字段末尾指定长度的字符
- ORACLE截取字符串
- Oracle的substr函数简单用法 substr(字符串,截取开始位置,截取长度
- Oracle字符串截取和大小写转换
- oracle截取字符串并做比较-SUBSTR("字符串",起始位-从1开始数,截取长度)
- 解决页面截取中英文字符串长度显示不一致问题
- Oracle截取字符串
- oracle中的分页显示