#ssis #etl #lookup
#ssis #etl #поиск
Вопрос:
у меня есть пустая таблица назначения, которую необходимо заполнить из исходной таблицы, используя SSIS ETL.
Мне нужно удалить дублирующуюся запись, а затем отправить ее адресату. я не хочу использовать «сортировку», потому что это займет время.
Спасибо
Комментарии:
1. дублируется вся запись или только ее часть?
2. Если дубликаты находятся в исходных записях, используйте distinct в вашем исходном запросе. На самом деле это будет выполнять сортировку за кулисами в базе данных, но это будет на порядок быстрее, чем SSIS
Ответ №1:
измените источник oledb с Table на SQLCOMMAND и используйте параметр DISTINCT в sql-запросе, если дублируется вся запись. ПРИМЕР:
SELECT DISTINCT * FROM Table1
Если дублирование находится в определенном столбце, используйте функцию ROW_NUMBER(). Пример:
SELECT * FROM (
SELECT ROW_NUMBER() OVER (PARTITION BY Col1,Col2 ORDER BY Col1,Col2) AS [ROWNUMBER],* FROM Table1) AS T1
WHERE T1.ROWNUMBER = 1