在度量快速开发平台中,可能会遇见从一张表中读取数据插入到另外一张表中,还需要判断有的数据就更改,没有的数据就插入,而且可能会有很多数据,比如10万条。按照平台的语法写很有难度,效率很低。
现提供一个使用方法,大家可以参考测试。
merge into 解决用B表跟新A表数据,如果A表中没有,则把B表的数据插入A表; 语法: MERGE INTO [your table-name] [rename yourtable here] USING ([write your query here] )[rename your query-sqland using just like a table] ON ([conditional expression here] AND[...]...) WHEN MATHED THEN [here you can executesome update sql or something else ] WHEN NOT MATHED THEN [execute somethingelse here ! ]
示例:
Merge Intoemp_bak i Using ( Selectemp_no,Name,salary,bonus From emp) s On(i.emp_no=s.emp_no) When Matched Then Update Set i.salary=s.salary,i.bonus=s.bonus When Not Matched Then Insert (i.emp_no,i.Name,i.salary,i.bonus)Values(s.emp_no,s.Name,s.salary,s.bonus);
如果数据量很大,此sql效率非常高
|