liu_qixiang 2022-10-31 17:15 采纳率: 40%
浏览 36
已结题

这个sql为什么rownum《=10会影响结果?

img

请各位帮我看看 这个sql 为什么isendact为null还连接到这么多数据

但是实际连接到的数据isendact并不为null为什么 会这样?

现在发现问题是这个oracle有问题 但不知道什么问题 因为我把数据导入另一个oracle发现查询出的结果是我预想的结果

  • 写回答

2条回答 默认 最新

  • leaf_cq 2022-11-01 10:08
    关注

    1、不知道你对表连接了解多少,首先,left join 表示左边表全部数据,右边表有满足 on 中条件的数据就输出,没有对应的字段就输出NULL
    2、其次,第一个语句中你在 WHERE 中指定了右表的某个字段 is null,这个条件有两层含义:一、是当右表在 ON 条件不满足的所有数据都满足这个条件(类似在WHERE条件中使用 NOT EXISTS()子句);另一个是当ON条件满足,能够提取出右表的数据中,指定的isendact这个字段本身的值是NULL的情况。显然,你第一个语句的所有输出都是满足第一类的情况的数据
    3、最后,你在第二个语句中指定 isendact is not null,根据上面的解释,这里仅仅会输出 ON 条件满足且 isendact 不为 null 的数据,你这种写法等效于使用 INNER JOIN,在ON条件中为:RES.ID = TE.TASKID AND TE.ISENDACT IS NOT NULL

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月9日
  • 已采纳回答 11月1日
  • 修改了问题 11月1日
  • 修改了问题 10月31日
  • 展开全部