如何使用命令合并两个表?

时间:2015-06-27 20:04:53

标签: sql merge

尝试合并两个表时,如果行不匹配,我如何根据订单插入行。例如,在table_2中,我有一个“类型”列(样本值1,2,3等),所以当我为不匹配的代码插入时,我需要首先插入类型为1的记录,然后是2等。

到目前为止,我尝试了下面的代码

WITH tab1 AS
(
select * From TABLE_2 order by Type
)
merge  tab1 as Source using TABLE_1 as Target on Target.Code=Source.Code 
when matched then update set Target.Description=Source.Description
when not matched then insert (Code,Description,Type) 
values (Source.Code,Source.Description,Source.Type);

但我得到“ORDER BY子句在视图,内联函数,派生表,子查询和公用表表达式中无效,除非还指定了TOP或FOR XML。”由于在子查询中使用order by而出错。

那么在合并两个表时如何根据订单插入记录?

提前致谢。

1 个答案:

答案 0 :(得分:0)

更改

select *

select top 100 percent

这将允许您在第一个选择

中使用ORDER BY