【问题标题】:Oracle Minus queryOracle 减号查询
【发布时间】:2014-05-27 05:44:08
【问题描述】:

我对 Oracle 减号查询有疑问。如果我的查询是这样的

 select col1 from 
(select '1' col1 from dual
union
select '2' col1 from dual )
minus
select col1 from 
(select '1' col1 from dual
 );

结果如预期 2 。但是如果我在查询 1 之后放一个分号,如下所示

select col1 from 
(select '1' col1 from dual
union
select '2' col1 from dual );
minus
select col1 from 
(select '1' col1 from dual
 );

Result 是 1。谁能解释一下为什么 Result 是这样的。我正在使用 PL/SQL Developer

【问题讨论】:

  • 当你放一个分号时。这意味着查询已完成。所以你的工具只执行你的查询直到那个!相反,当你选择整个查询然后执行时,你只会得到一个语法错误!
  • oracleUser: 那么查询应该产生 1,2 为什么它只产生 1.而且它没有给出 Sysntax 错误。

标签: sql oracle oracle11g plsqldeveloper


【解决方案1】:

当您在第一次选择后加上分号时,表示选择已完成,您有两个单独的选择

first select is:

select col1 from 
(select '1' col1 from dual
union
select '2' col1 from dual );

它返回1 and 2

the second is:

minus
select col1 from 
(select '1' col1 from dual
);

minus 在这部分没有任何意义,但是 select 可以运行并返回 1

您只需从第二部分运行查询并查看1 作为结果。

【讨论】:

  • 太棒了。它实际上忽略了“减号”在 PL/SQL 开发人员中运行这两个语句并在两个选项卡中给出结果。我错过了第一个选项卡中的结果。
猜你喜欢
  • 2015-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-30
  • 1970-01-01
相关资源
最近更新 更多