2015-06-27 4 views
0

При попытке объединить две таблицы, когда строки не совпадают, как вставлять строки на основе заказа. Например, в таблице_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); 

Но я получаю «Поручения пункта недействительна в представлениях, встроенных функциях, производных таблиц, подзапросов и общих табличных выражений, если TOP или FOR XML не указан также.» ошибка из-за использования порядка в подзапросе.

Итак, как мне вставлять записи по заказу при слиянии двух таблиц?

Заранее спасибо.

+0

Пожалуйста, помечать вопрос с базой данных, которую вы используете (которые я предполагаю является SQL Server). –

ответ

0

Изменить

select * 

в

select top 100 percent 

Это позволит вам использовать ORDER BY в первой выберите

Смежные вопросы