初识 Minus
今天遇到一个面试题,Oracle数据库存在两张表,表字段相同,但是一个表A 比另一个表B 数据多,写出SQL 查询多出的数据。不能用in 、not in、exists、not exists。
刚看到时懵了。回去查阅资料,才发现Oracle中存在minus关键字,说明:
MINUS关键字,它运用在两个SQL语句上,它先找出第一条SQL语句所产生的结果,然后看这些结果有没有在第二个SQL语句的结果中。如果有的话,那这一笔记录不会在查询结果中。如果第二个SQL语句所产生的结果并没有存在于第一个SQL语句所产生的结果内,那这笔资料也不会显示在查询结果中。
Ps:就是存在于第一个SQL中,但是不存在于第二个SQL中的数据。返回的是差集,另会去掉重复数据。
其语法如下:
[SQL Segment 1]
MINUS
[SQL Segment 2]
实现:select * from A Minus select * from B 这样就能取出A表比B表多的数据(即差集)。且查询资料得之 效率比 exists 、in 效率高很多~~~~很强大的关键字,值得应用
小结:初识,Minus很好很强大。与Minus相关还有INTERSECT (交集) UNION ALL (并集) 其用法是一样的啦~~~~
浙公网安备 33010602011771号