一、merge相关
1、一些复杂的关联update更新数据,可以考虑用merge代替
2、on中可以实现被插入表的单表数据过滤(using 数据源可以为空,此时when matched 和when not matched 返回null都不执行)
如 merge into test d
using (select 1 from dual)s
on (d.c1=s.c1 and d.c2=sysdate)
when matched
update set d1.c3 =**
when not matched
insert values();
3、update可以带where条件
4、可以单独使用update 和insert
二、hint相关
1、hint 不光可以在select中使用,update也同样可以使用
2、hint必须紧跟在select 或update 之后
eg: update /*+ index (t) */ site_daily_settlemetn t set c2=x+1 where report_date =**;
select /*+ index (t) */ * from site_daily_settlemetn t where report_date =**;有效
select * /*+ index (t) */ from site_daily_settlemetn t where report_date =**;×hint失效的
本文深入探讨了SQL中的merge操作及其复杂关联更新方法,同时介绍了hint在update语句中的应用,包括如何在select和update语句中使用hint,以及其有效性和限制。

被折叠的 条评论
为什么被折叠?



