`
jmStatham
  • 浏览: 763 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

oracle中distinct关键字导致结果的再一次inner join失败的问题

阅读更多
         select a.*,c.* from
         (select jx.jxdxdh, jx.zhdh, jx.zhhm from jxdx_ckzh jx) a
         inner join
         (select /*distinct*/ b.jxdxdh,b.fpms
            from (select gx.jxdxdh,
                         wmsys.wm_concat(hy.hymc || gx.zlbl) fpms
                    from khdx_hy hy, dxgx_hyyjgx_ck gx
                   where hy.khdxdh = gx.khdxdh
                     and 20130421 between gx.qsrq and gx.jsrq
                     and gx.gxhslx = '1'
                   group by gx.jxdxdh
                  union all
                  select jx.jxdxdh, hy.hymc || '|100' as fpms
                    from jxdx_ckzh jx, khdx_hy hy
                   where hy.khdxdh = jx.khdxdh
                     and 20130421 > jx.khrq
                     and jx.gxhslx = '0') b) c
                     on a.jxdxdh = c.jxdxdh;                  

oracle中为什么上述语句中加distinct关键字后,会导致查询结果集数据丢失?
union all 中的第1部分的所有数据都丢失了!!不知道为何,我怀疑是使用distinct后,
就不能使用inner join关联结果集了,如此distinct只能放到最后。
 
 

 
            
            
            
            
            
            
分享到:
评论

相关推荐

    Oracle自定义数据分页存储过程

    Oracle分页存储过程,根据指定条件分页 并附上使用示例(C#代码) 注:不能查询视图或者包含distinct、group by、inner join的子句

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    其一、就业面广:全球前100强企业99家都在使用ORACLE相关技术,中国政府机构,大中型企事业单位都能有ORACLE技术的工程师岗位。 其二、技术层次深:如果期望进入IT服务或者产品公司(类似毕博、DELL、IBM等),...

    oracle数据库经典题目

    3.在需要滤除查询结果中重复的行时,必须使用关键字Distinct; 在需要返回查询结果中的所有行时,可以使用关键字ALL。 4.当进行模糊查询时,应使用关键字like和通配符问号(?)或百分号"%"。 5.Where子句可以接收...

    sql学习笔记

    sql练习中易错笔记,order by ,group by,distinct,内连接,外连接等,一些mysql和oracle使用的区别:sql4种连接 两个表中有相同的列,根据共有的列值匹配行 left join左外连接,不管左表是否在右表中有匹配行,都...

    精通SQL 结构化查询语言详解

    9.3.3 内连接(INNER JOIN) 9.3.4 外连接(OUTER JOIN)  9.3.5 交叉连接(CROSS JOIN)  9.4 UNION与UNION JOIN  9.4.1 关系的集合运算  9.4.2 UNION运算符  9.4.3 ORDER BY子句排序UNION运算结果  9.4.4 ...

    精通SQL--结构化查询语言详解

    9.3.3 内连接(inner join) 167 9.3.4 外连接(outer join) 170 9.3.5 交叉连接(cross join) 176 9.4 union与union join 177 9.4.1 关系的集合运算 177 9.4.2 union运算符 178 9.4.3 order by子句排序...

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

    3.7.1 SQL 92 标准:Inner Join、Left Join、Right Join、Full Join, 3.7.2 特殊语法:*=、=*、*=*(MS_SQL,Sybase),(+)(Oracle) 3.8 联合 (Union [All],Minus,Intersect) 3.9 字段别名,数据表别名 ...

    SQL语法大全

    Source参数可以是一个Command对象名称、一段SQL命令、一个指定的数据表名称或是一个Stored Procedure。假如省略这个参数,系统则采用Recordset对象的Source属性。 ActiveConnection Recordset对象可以通过...

    sql语句生成与分析器.rar

    3.7.1 SQL 92 标准:Inner Join、Left Join、Right Join、Full Join, 3.7.2 特殊语法:*=、=*、*=*(MS_SQL,Sybase),(+)(Oracle) 3.8 联合 (Union [All],Minus,Intersect) 3.9 字段别名,数据表别名 ...

    2009达内SQL学习笔记

    rollback:回溯,回溯到上次操作前的状态,把这次事务操作作废,只有一次(DDL和DCL语句会自动提交,不能回溯)。 可以用commit语句提交,这样就回溯不回了。 set pause on\off :设置分屏(设置不分屏) set pause...

    sql经典语句一部分

    3),例如:在一个外部表中导入数据,由于某些原因第一次只导入了一部分,但很难判断具体位置,这样只有在下一次全部导入,这样也就产生好多重复的字段,怎样删除重复字段 alter table tablename --添加一个自增列 add...

    数据库操作语句大全(sql)

    3),例如:在一个外部表中导入数据,由于某些原因第一次只导入了一部分,但很难判断具体位置,这样只有在下一次全部导入,这样也就产生好多重复的字段,怎样删除重复字段 alter table tablename --添加一个自增列 ...

    经典SQL语句大全

    3),例如:在一个外部表中导入数据,由于某些原因第一次只导入了一部分,但很难判断具体位置,这样只有在下一次全部导入,这样也就产生好多重复的字段,怎样删除重复字段 alter table tablename --添加一个自增列 add...

    Absolute Database for D7

    user and multi-user mode Full transactions support with ReadCommited isolation level SQL Support SELECT with DISTINCT, INNER LEFT, RIGTH, FULL and OUTER JOIN, GROUP BY and ORDER BY clauses CREATE ...

Global site tag (gtag.js) - Google Analytics