繁体   English   中英

在选择语句中减去oracle

[英]oracle minus in select statement

我有两个桌子。 A&B

ID   Name
1     A
2     B
3     C
4     D

ID   Sal
1    400
2    300
3    500

现在,我需要从第一个表中获取记录(ID,名称),这些sal在第二个表中未分配。 使用子查询我得到了这个。 但是我需要不使用子查询来解决它。 所以我尝试了减号运算符。 但是我现在已经可以坐满第一张桌子了。

select id,name from A
minus
select id,to_char(null) from B;

我究竟做错了什么?

您可以在with子句中使用减号

with ids as (
select id
from A
minus
 select id
 from B
 ) select A.id ,A.name 
 from A join ids on ids.userid=A.userid;

但是没有使用子查询,我需要解决。

通过CTE使用此功能:

with tbl(id) as ( select id from B)
select id,name 
from A 
inner join tbl b
on a.id <> b.id

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM