博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
木其工作室代写程序 [原]Oracle常用sql语法
阅读量:5732 次
发布时间:2019-06-18

本文共 1884 字,大约阅读时间需要 6 分钟。

原创作品,允许转载,转载时请务必以超链接形式标明文章 、作者信息和本人声明。否则将追究法律责任。
作者: 地址:

1、使用connect by.. start with... 递归查询

递归查询就是将表中的id 与parentid 关联起来,建立关联关系之后oracle帮我们把表中所有满足条件的信息全部一次性的显示出来。

sql代码如下:

/*connect by :以...为连接基础,将id与parentid关联起来sj_id = prior sj_parentid:关联等式,prior 表示以哪个字段设为优先权限,下面例子表示以parentid为主,它会一直根据parintid去查找i栏目信息(查找所有id等于这里的parentid的栏目信息)直到结束,所以肯定会找到根节点start with :表示以什么条件开始查找,必须指定level :表示 这种关系的层级,方便理解*/select sj_id,sj_name,sj_parentid,level from tb_subject connect by sj_id = prior sj_parentid start with sj_id =22524
效果图如下:

另外prior指定的位置不一样,那么它查询的效果也不一样。

sql代码如下:

/*这条语句较上面紧紧 只是prior的位置不同,但效果却完全不一样,上面说了prior表示将哪个字段设为优先权限,上面以parentid为主,永远向上查找而下面以id为主,表示id享有优先权,那么它会一直根据id去查找栏目信息(查找所有parentid等于这里的id的栏目信息)直到结束,所以肯定会找到该栏目下的所有的子节点,以及子节点下的所有子节点信息*/select sj_id,sj_name,sj_parentid,level from tb_subject connect by prior sj_id = sj_parentid start with sj_id =22524

效果图如下:

2、使用rownum 进行分页查询

oracle 的分页不像sql server 一样,可以使用 top 10  not in  (select top 20 )  这么方便,oracle 分页需要用到rownum 伪列来完成。

现在以查询第11条到20条的条件为例,目前有两种实现的方式:

sql 代码如下:

/*在子查询语句中,只有父块部分才能引用子块的别名,反之不行。使用rownum如果直接给予条件rn between 11 and 20,将什么都不会显示,因为rownun查询的结果返回的第一行永远是1,如果直接指定为11,则不满足显示情况。这条语句先查询所有的栏目信息,然后根据rownum筛选一下,最后使用between ..and ...得到我想要的第11条到20条显示*/select sj_id,sj_name,sj_parentid from(     select s.*,rownum rn from (        select * from tb_subject order by sj_id    ) s ) where rn between 11 and 20000;   /*这条语句先查询所有的栏目信息,然后根据rownum筛选并过滤前20条信息,最后再使用之前的rownum在过滤一起取出后从第11条开始到结束的信息*/select sj_id,sj_name,sj_parentid from(    select s.*,rownum rn from (       select * from tb_subject order by sj_id    ) s where rownum <=20000) where rn >=11/*后来反复执行这两条语句,甚至加大查询的数目,这两条语句在执行的时候几乎相差不大。查询时间的差距微乎其微 ,从实际出发来看着两条鱼具不会太影响系统的访问性能。No.1      No.22.934    2.7932.73     3.4012.776    2.9183.136    2.823*/
使用他们的效果一样,都可以达到预期的功能。

后期慢慢整理。

作者:ch656409110 发表于2013-7-23 18:44:14
阅读:67 评论:0

转载于:https://www.cnblogs.com/sourcecode2014/p/3295425.html

你可能感兴趣的文章
Centos 配置IP的方式
查看>>
Go 的吉祥物,萌不萌
查看>>
【iOS】AFN网络请求通过获取cookies保持会话
查看>>
Java 的swing.GroupLayout布局管理器的使用方法和实例
查看>>
Android中Activity和Fragment的生命周期的对比
查看>>
C++Primer_笔记_异常处理
查看>>
分区交换 alter table exchange partition 在线表 历史表交换
查看>>
思科三层交换 HSRP 热备 配置方法
查看>>
zabbix详解:(二)添加被监控机器
查看>>
设计模式单列
查看>>
人像模式的灯光效果?iPhone 8开挂袭来
查看>>
Linux下MongoDB安装与配置
查看>>
DSL配置(PPPOA)
查看>>
WEBRTC执行流程
查看>>
Spring Boot 入门系列
查看>>
Spring Cloud版——电影售票系统<六>使用 Spring Cloud Config 统一管理微服务配置
查看>>
Java not support java EE1.3
查看>>
iptables规则备份及恢复、firewalld九个zone,service的操作
查看>>
www.conf配置文件的参数详解
查看>>
如何实现邀请好友帮抢票功能?
查看>>