
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中不同
minus指令最后有吗一:MINUS指令 其是运用在两个 SQL 语句上.它先找出第一个 SQL 语句所产生的结果,然后看这些结果有没有在第二个 SQL语句的结果中.如果有的话,那第一个SQL结果数据就被去除,而不会在最后的结果中出现.如果第一个 SQL 语句所产生的结果并没有存在于第二个 SQL 语句所产生的结果内,那第一个SQL结果数据就被保留,会在最后的结果中出现.
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)