SSIS заполнить нулевое значение ненулевым значением
В настоящее время я могу получить этот тип вывода из плоского файла после запуска компонента сценария в SSIS:
Моя цель - заполнить оставшуюся часть колонки тем же серийным номером, например:
Я попытался сделать это, установив переменную и используя производный столбец, но переменная не устанавливается до потока данных. Также скрипт читает только построчно, поэтому я не вижу очевидного способа сделать эту простую задачу.
Есть ли способ создать столбец в скрипте и присвоить ему значение по умолчанию для серийного номера? Или есть способ использовать команду SQL для обновления значений Null, где столбец не является нулевым?
2 ответа
Вы можете попробовать этот дизайн, чтобы выполнить то, что вам нужно (не стесняйтесь упростить его, протестировано с вашими входными данными):
- Читайте ваш источник
- Multicast
- Агрегируйте по столбцу вы хотите максимальное значение (серийный номер)
- создать производный столбец с постоянным значением (например, 1)
- сортировать набор по постоянному значению
- Объедините два набора с полным соединением, используя постоянный ключ
- импортировать данные в таблицу назначения и использовать новый агрегированный столбец для заполнения столбца с серийным номером
Обновить оператор после загрузки данных в таблицу:
update table set column = (select top 1 column from table where column is not null) where column is null