oracle数据库中NOT IN 和 NOT EXISTS为什查不到数据

2019-03-25 13:39|来源: 网路

SELECT GA.ADID, GA.ADNAME
      FROM GAP_AD GA
     WHERE
     exists(SELECT GAP.ADID
              FROM GAP_ADPOSITION GAP
             WHERE GAP.ADPOSITIONSTATUS = '1')
       AND NOT exists(SELECT GAP.ADID
              FROM GAP_ADPOSITION GAP
             WHERE GAP.ADPOSITIONSTATUS = '0'
                OR GAP.ADPOSITIONSTATUS = '2')
为什么查不到数据呢?
SELECT GA.ADID, GA.ADNAME
      FROM GAP_AD GA
     WHERE GA.ADID IN(SELECT GAP.ADID
              FROM GAP_ADPOSITION GAP
             WHERE GAP.ADPOSITIONSTATUS = '1')
       AND GA.ADID NOT IN (SELECT GAP.ADID
              FROM GAP_ADPOSITION GAP
             WHERE GAP.ADPOSITIONSTATUS = '0'
                OR GAP.ADPOSITIONSTATUS = '2')
这个就可以查到
哪位朋友帮帮我

相关问答

更多
  • 函数是有返回值的,存储过程没有。 在BODY中的话,一般函数都是SELECT语句,而存储过程是包括DML语句的。
  • 1,在select 语句中可以使用group by 子句将行划分成较小的组,一旦使用分组后select操作的对象变为各个分组后的数据,使用聚组函数返回的是每一个组的汇总信息。 使用having子句限制返回的结果集。group by 子句可以将查询结果分组,并返回行的汇总信息Oracle 按照group by 子句中指定的表达式的值分组查询结果。 2,在带有group by 子句的查询语句中,在select 列表中指定的列要么是group by 子句中指定的列,要么包含聚组函数 select max(sal) ...
  • 左外连接用left join,右外连接用right join语句。 比如 Oracle: select * from a, b where a.id=b.id(+) SQL: select * from a left join b on a.id=b.id 反过来a.id(+)=b.id 就是right join
  • 1、打开plsql,输入数据库信息,使用用户名和密码,登录Oracle数据库; 2、成功登录数据库后,可以看到当前数据库相关信息列表,PLSQL提供了强大的工具菜单; 3、导出dmp文件的话,只需点击“工具”,在下拉菜单中找到“导出表”; 4、然后选择相应需要导出的表,在红框处选择生成文件位置,点击导出,则PLSQL就会调用导出命令执行导出; 5、如需要将已有的dmp文件导入现有数据库,可以点击“工具”,在下拉菜单中,点击“导入表”。 6、在导入选项卡中,在红框处选择要导入的文件路径,点击“导入”; 7、然 ...
  • SID是ORACLE数据库的系统标识符,就是一个数据库实例的名称。
  • 它实际上更像是一个工具包。 因此名称为“JavaScript Extension Toolkit”。 您可以根据需要使用尽可能少的内容。 如果你全部使用它,它将类似于其他框架。 如果你只使用一些UI组件,我猜它们可以被认为是个别库。 最后,它是一个工具包,您可以决定如何充分利用它。 It's actually more of a Toolkit. Thus the name, "JavaScript Extension Toolkit". You can use as little or as much o ...
  • OVER子句指定分析函数的分区,排序和窗口。 例如,这计算移动平均值: AVG(amt) OVER (ORDER BY date ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) date amt avg_amt ===== ==== ======= 1-Jan 10.0 10.5 2-Jan 11.0 17.0 3-Jan 30.0 17.0 4-Jan 10.0 18.0 5-Jan 14.0 12.0 它按照日期排序在行上的移动窗口 ...
  • 如何找到包含此工件的存储库(如果有)? 不幸的是,由于二进制许可证没有Oracle驱动程序JAR的公共存储库。 这发生在许多依赖关系,但不是Maven的错误。 如果你碰巧找到一个包含JAR的公共存储库,你可以肯定这是非法的。 如何添加它,以便Maven会使用它? 由于许可证原因不能添加的一些JAR在Maven Central repo中有一个pom条目。 只需检查一下,它包含供应商的首选Maven信息: com.oracle ojdbc14
  • 您无法直接从仪表板填充存储库变量,因为存储库变量对于所有用户都是相同的常量。 您可以使用从仪表板提示符填充的演示文稿变量来提供类似的功能。 Nico在他的网站上概述了演示变量 。 You can't populate a repository variable directly from a Dashboard, as a repository variable is the same constant for all users. You could use a presentation variable ...
  • 尝试找到'libclntsh.so'找到/ -name“libclntsh.so *”也许你可以做一个软链接到libclntsh.so 可能你应该指定PATH - 以及ORACLE_HOME和LD_LIBRARY_PATH - 以便二进制文件知道在哪里找到二进制文件。 就像是 export LD_LIBRARY_PATH=/usr/lib/oracle/12.1/client/lib/ try to find 'libclntsh.so' find / -name "libclntsh.so*" Mayb ...