minus的Minus(oracle数据库)

minus的Minus(oracle数据库),第1张

在Oracle中minus运算的主要功能是: 在进行两个表格或者两个查询结果的时候,返回在第一个表格/查询结果中与第二个表格/查询结果不相同的记录。

比如A表中数据如下:

ID NAME ADDRESS TEL

1 ABC AAAA 123456

2 ABD BBBB 123455

3 ABE CCCCC 111111

比如B表中数据如下:

ID NAME ADDRESS TEL

1 ABC AAAC 123456

2 ABD BBBB 123455

那么

(SELECT * FROM A)

MINUS

(SELECT * FROM B)的结果是:

1 ABC AAAA 123456

3 ABE CCCCC 111111

结果中的第一行数据是由于 A,B 表中的ADDRESS不相等

结果中的第二行数据是由于 A表中的数据在B表中不存在

1.MERGE 判断table1和table2是否满足ON中条件,如果满足则用table2表去更新table1表,如果不满足,则将table2表数据插入table1表但是有很多可选项,表关联更新

MERGE  INTO table1 a

    USING(

                 select b.id bid,b.name bname from table2 b left join table1 c on c.id = b.id

)bb on(a.id = bb.bid)

WHEN MATCHED THEN

UPDATE SET

        a.name = bb.bname

WHEN NOT MATCHED THEN

INSERT(

a.id,a.name

)VALUES(

bb.bid,bb.bname

)

2.START WITH... CONNECT BY PRIOR...的作用,简单来说,就是将一个树状结构存储在一张表里,比如菜单

select * from table_menu start with menu_id='210' connect by prior menu_id=menu_parent_id

查询菜单id为210下所有子菜单包括id为210的菜单。

3.OVER(PARTITION BY)根据表中字段分割后在排序取第一条

select * from (select r.*, row_number() over(PARTITION BY 字段1,字段2 order by 字段3 desc) rn

from table1 r

) where rn = 1

4.MINUS 表之间比较

select  id,name from table1

minus

select id,name from table2

table1中有table2中无或者table1中id,name与table2中不同


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9938702.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-03
下一篇2023-05-03

发表评论

登录后才能评论

评论列表(0条)

    保存