SSIS заполнить нулевое значение ненулевым значением

В настоящее время я могу получить этот тип вывода из плоского файла после запуска компонента сценария в SSIS:

Текущий выход

Моя цель - заполнить оставшуюся часть колонки тем же серийным номером, например:

Результат цели

Я попытался сделать это, установив переменную и используя производный столбец, но переменная не устанавливается до потока данных. Также скрипт читает только построчно, поэтому я не вижу очевидного способа сделать эту простую задачу.

Есть ли способ создать столбец в скрипте и присвоить ему значение по умолчанию для серийного номера? Или есть способ использовать команду SQL для обновления значений Null, где столбец не является нулевым?

2 ответа

Решение

Вы можете попробовать этот дизайн, чтобы выполнить то, что вам нужно (не стесняйтесь упростить его, протестировано с вашими входными данными):

  1. Читайте ваш источник
  2. Multicast
  3. Агрегируйте по столбцу вы хотите максимальное значение (серийный номер)
  4. создать производный столбец с постоянным значением (например, 1)
  5. сортировать набор по постоянному значению
  6. Объедините два набора с полным соединением, используя постоянный ключ
  7. импортировать данные в таблицу назначения и использовать новый агрегированный столбец для заполнения столбца с серийным номером

Обновить оператор после загрузки данных в таблицу:

update table set column = (select top 1 column from table where column is not null) where column is null
Другие вопросы по тегам