SSIS条件分割

时间:2014-03-31 22:06:15

标签: sorting ssis filtering transformation rank

我正在将一组数据导入OLE DB SQL SERVER。我有两列:

ID  CONDITION  CLIENT
1   A11111     G12345
1   X11111     G23456
2   A11111     G12345
2   A11111     G12345
3   A11111     G12345
3   A11111     G23456
4   X11111     G12345

我必须删除重复项并通过转换上传表格。如果condition列重复项具有相同的值,请将该值取入,如果它们不同,请使用较小的值。与client列相同。我把它带到SQL服务器的临时表中,使用条件分割在两个条件下使用rank==1进行排名。每件事情都运作良好但是对于两条记录,这些在条件列上的排名采用了默认值,但该记录应该流经管道线,因为客户端等级为1。有什么建议可以解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

删除重复项的最简单方法是在select语句中使用GROUP BY或DISTINCT子句。

或者,如果您要查找最新值,则按ID分组的row_number()语句按UpdateDate排序?降。每个id的row_number的结果将使您能够仅选择row_number为每个id 1的行。 For a similar Row_Number example have a look at this

答案 1 :(得分:0)

你的第一个条件应该有2个输出:当rank == 1时,正数应输出到UNION ALL变换,默认输出到第二个条件。 第二个条件也应该输入rank == 1到UNION ALL转换。

UNION ALL的输出将有任何一行传递一个或另一个条件。