Для оператора insert ... select
есть ли способ игнорировать переменную, которая требуется для оператора select, но должна быть вставлена?
Я использую функцию rank
, чтобы выбрать, какие данные insert
. К сожалению, функция rank
не может быть вызвана в предложении where.
insert into target_table(v1
,v2
,v3
)
select v1
,v2
,v3
,RANK() over (partition by group_col
order by order_col desc
) as my_rank
from source_table
where my_rank > 1
Результатом является следующая ошибка:
Сообщение 121, Уровень 15, Состояние 1, Строка 1 Список выбора для ВСТАВКИ
Оператор содержит больше элементов, чем список вставки. Номер
Значения SELECT должны соответствовать количеству столбцов INSERT.
Я знаю, что могу сделать это, используя временную таблицу, но хотел бы сохранить ее в одном выражении, если это возможно.