`
ypluck
  • 浏览: 76466 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

使用Oracle的minus时注意order by

阅读更多
昨天发现一个很奇怪的现象,我在分页时的SQL明明是6条,结果确是意想不到的(是9条),我的SQL是这样的
select rownum,Page.* from(select id_item,itemname,id_itemclass,id_org from stm_list where id_item not in (select id_item from stm_exppsinfo where id_ptitem='P00002' and grpcode='200901' and IS_FENPEI='Y') and grpcode='200901' and id_ptitem='P00002' order by id_itemclass,id_org)Page where rownum<=66 MINUS select rownum,Page.* from(select id_item,itemname,id_itemclass,id_org from stm_list where id_item not in (select id_item from stm_exppsinfo where id_ptitem='P00002' and grpcode='200901' and IS_FENPEI='Y') and grpcode='200901' and id_ptitem='P00002' order by id_itemclass,id_org)Page where rownum<=60


查查了原因,原来是在使用order by的时候出问题了,本人的经验,在使用minus时同时又使用order by进行排序,这时候请加上第二个排序条件,而且这个排序的条件尽量不要重复,以免出现意想不到的结果,最好是主键。

总结:

1.oracle的minus是差集的意思
2.oracle的INTERSECT 是返回两个查询中都出现的记录
3.oracle的UNION 是返回两个查询的记录
0
0
分享到:
评论

相关推荐

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    1.5.6 ORDERBY子句 13 1.6 INSERT语句 14 1.6.1 单表插入 14 1.6.2 多表插入 15 1.7 UPDATE语句 17 1.8 DELETE语句 20 1.9 MERGE语句 22 1.10 小结 24 第2章 SQL执行 25 2.1 Oracle架构基础 25 2.2 SGA-...

    Oracle_Database_11g完全参考手册.part3/3

    5.4 select、From、where和Orderby 5.5 逻辑和值 5.5.1 单值测试 5.5.2 值列表的简单测试 5.5.3 组合逻辑 5.6 wbLere的另一个用途:子查询 5.6.1 从子查询得到单值 5.6.2 从子查询得到值列表 5.7 组合表 5.8 创建...

    Oracle_Database_11g完全参考手册.part2/3

    5.4 select、From、where和Orderby 5.5 逻辑和值 5.5.1 单值测试 5.5.2 值列表的简单测试 5.5.3 组合逻辑 5.6 wbLere的另一个用途:子查询 5.6.1 从子查询得到单值 5.6.2 从子查询得到值列表 5.7 组合表 5.8 创建...

    最全的oracle常用命令大全.txt

    SQL&gt;select index_name,index_type,table_name from user_indexes order by table_name; 查看索引被索引的字段 SQL&gt;select * from user_ind_columns where index_name=upper('&index_name'); 查看索引的大小 ...

    一个释放临时表空间实例

    Oracle临时表空间主要用来做查询和存放一些缓冲区数据。临时表空间消耗的主要原因是需要对查询的中间结果进行排序。...Order by 或 group by Distinct 操作 Union 或 intersect 或 minus Sort-merge joins analyze

    Oracle8i_9i数据库基础

    §2.4.1 用 ORDER BY 子句来对结果进行排序 76 §2.4.2 用 BREAK 命令 来对结果进行排列 76 §2.4.3 用 COMPUTE 命令对结果进行格式化 79 §2.5 配置会话环境 82 §2.5.1 ARRAYSIZE(取回的行数) 82 §2.5.2 ...

    Oracle 10g 开发与管理

    本文是由笔者2012年学习oracle数据库时编写的学习札记,其中的题目 多数为老师留下的思考题目。 我相信本文会对初学者使用oracle有一个初步的使用印象。右图为我所参 考的书籍。 目录 第一讲 Oacle关系数据库 ...

    oracle常用函数汇总(分享)

    like between is null in逻辑运算符:not and or 集合运算符: intersect ,union, union all, minus 要求:对应集合的列数和数据类型相同 查询中不能包含long 列 列的标签是第一个集合的标签 使用order by时,...

    sql语句生成器+支持各大数据库+说明书

    排序(Order By) 条件(Where) 分组(Group By) 分组条件(Having) 计算字段 SQL查询表 SQL查询子句 丰富的函数 表别名 字段别名(包括计算字段和非计算字段) 联合(Union,对于Oracle 支持Union All,Minus,Intersect) ...

    SQL语言生成器(delphi)

    排序(Order By) 条件(Where) 分组(Group By) 分组条件(Having) 计算字段 SQL查询表 SQL查询子句 丰富的函数 表别名 字段别名(包括计算字段和非计算字段) 联合(Union,对于Oracle 支持Union All,Minus,Intersect) 4、...

    SQL语句自动生成工具

    无需安装和卸载 支持几乎所有的SQL语法: 排序(Order By) 条件(Where) 分组(Group By) 分组条件(Having) 计算字段 SQL查询表 SQL查询子句 丰富的函数 表别名 字段别名(包括计算...

    SQL语句自动生成器简体中文版

    无需安装和卸载 支持几乎所有的SQL语法: 排序(Order By) 条件(Where) 分组(Group By) 分组条件(Having) 计算字段 SQL查询表 SQL查询子句 丰富的函数 表别名 字段别名(包括计算...

    orcale常用命令

    SQL&gt;select index_name,index_type,table_name from user_indexes order by table_name; 查看索引被索引的字段 SQL&gt;select * from user_ind_columns where index_name=upper('&index_name'); 查看索引的大小 ...

    2009达内SQL学习笔记

    NOT 与 IN 在一起使用时,NOT 是找出与条件列表不匹配的行。 IN 列表里有 NULL 时不处理,不影响结果;用 NOT IN 时,有 NULL 则出错,必须排除空值再运算。 in :选择列表的条件 使用IN操作符的优点: 在长的...

    SQL语句生成及分析器(中文绿色)

    3.6 排序 (Order By) 3.7 数据表的内连接、外连接 3.7.1 SQL 92 标准:Inner Join、Left Join、Right Join、Full Join, 3.7.2 特殊语法:*=、=*、*=*(MS_SQL,Sybase),(+)(Oracle) 3.8 联合 (Union ...

    sql语句生成与分析器.rar

    3.6 排序 (Order By) 3.7 数据表的内连接、外连接 3.7.1 SQL 92 标准:Inner Join、Left Join、Right Join、Full Join, 3.7.2 特殊语法:*=、=*、*=*(MS_SQL,Sybase),(+)(Oracle) 3.8 联合 (Union ...

    SQL语句生成及分析器

    排序(Order By) 条件(Where) 分组(Group By) 分组条件(Having) 计算字段 SQL查询表 SQL查询子句 丰富的函数 表别名 字段别名 联合(Union,Union All,Minus,Intersect) 4、SQL语句反向分析 无论多么复杂...

    SQL培训第一期

    rank() over (partition by t.organcode order by t.score desc) ranknum from exam_user_exam t) where ranknum 1.8.11.2 说明 获取每个组织,考试成绩前三名。 1.9 存储过程 1.9.1 定义 存储过程是一组为了完成...

    SQL语句教程.pdf

    ORDER BY 函数 COUNT GROUP BY HAVING ALIAS 表格链接 外部链接 CONCATENATE SUBSTRING TRIM 表格处理 CREATE TABLE CONSTRAINT NOT NULL UNIQUE CHECK 主键 外来键 CREATE VIEW CREATE INDEX ALTER TABLE DROP ...

Global site tag (gtag.js) - Google Analytics