首页 > 解决方案 > Oracle减法运算如何转义列中的括号

问题描述

我有一个名为 TableA 的表。它包含 4 列,即 id、name、country、amount。另一个 TableB 包含 4 列,即 id、name、country、amount。

TablaA 包含一些类似的数据

14|Jone|England|700
14|Steve|Hungary|400
15|Alex|Germany(munich)|500
12|Gerrard|Ireland|400

TableB 包含一些类似的数据

14|Jone|England|500
14|Steve|Hungary|400
15|Alex|Germany(dortmund)|500

当我执行这个查询时,select * from TablaA minus select * from TableB我得到了这些结果

14|Jone|England|700
15|Alex|Germany(munich)|500
12|Gerrard|Ireland|400

但我期待这些结果

14|Jone|England|200
12|Gerrard|Ireland|400

如何转义括号数据?

标签: sqloracle

解决方案


嗯。. . 我认为您想要id/ name/amount仅在一张表中的组合。如果这是正确的:

select a.*
from a
where not exists (select 1 from b where b.id = a.id and b.name = a.name and b.amount = a.amount)
union all
select b.*
from b
where not exists (select 1 from b where b.id = a.id and b.name = a.name and b.amount = a.amount);

推荐阅读