SSIS使用非空值填充空值

时间:2018-02-07 14:43:21

标签: sql sql-server ssis script-task

在SSIS中运行脚本组件之后,我现在能够从平面文件中获取此类输出:

Current Output

我的目标是用相同的序列号填写列的其余部分:

Goal Output

我尝试通过将其设置为变量并使用派生列来完成此操作,但该变量未在数据流之后设置。此外,脚本只能逐行读取,因此我没有看到明显的方法来执行这个简单的任务。

有没有办法在脚本中创建一个列并为其提供序列号的默认值?或者有没有办法使用SQL命令来更新Null值,其中列是否为空?

2 个答案:

答案 0 :(得分:1)

您可以尝试此设计以执行您需要的操作(随意简化,使用您的输入数据进行测试): enter image description here

  1. 阅读您的来源
  2. 组播
  3. 在您想要的最大列上汇总 值(序列号)
  4. 使用常量值创建派生列     (例如1)
  5. 对常量值
  6. 进行排序
  7. 使用常量键
  8. 将您的两个集合与完整联接合并
  9. 将数据导入目标表并使用新的聚合 列填写序列号列

答案 1 :(得分:-1)

将数据加载到表后更新语句:

update table set column = (select top 1 column from table where column is not null) where column is null