ssi对数据排序

SSIS 对数据排序有两种方式,一种是使用Sort组件,一种是使用sql command的order by clause进行排序。

一,使用Sort组件进行排序

SSIS 对数据排序

SortType:升序 ascending,降序 descending

SortOrder:排序列的位置,从1开始依次递增,

Remove wors with duplicate sort values:如果排序列重复,是否删除重复的行,这不同于distinct,distinct是输出的所有列不重复,选中该选项,只是保证排序列(输出列的一部分)不重复。

该属性可以从Sort Transformation Advanced Editor中查看和设置

SSIS 对数据排序

 

二,使用sql command的order by clause对数据进行排序

Step1,使用OLEDB提供排序的数据,必须是经过排序的数据

select *from dbo.course c with(nolock)order by c.cid asc,c.score desc

 

 SSIS 对数据排序

 

Step2,打开OLEDB的Advanced Editor,查看Input and Output Properties选项卡

1,点击OLEDB Source Ouput,设置IsSorted属性为True,该属性设置为true不会对数据排序,只是告知下游组件,该输出数据已经排序。

如果将IsSorted属性设置为True,实际数据并没有排序,在package 运行时会出错,所以必须提供已经排序的数据(在sql 子句中使用order by进行排序)

2,点击Output Columns,逐个设置排序列(Order by Column_List)的SortKeyPosition属性

例如以下的sql语句

select Col_1,Col_2,Col_3,Col_4from dbo.TableNameorder Col_1 asc, Col_2 desc,Col_3 desc

在Output Columns中需要逐个设置,Col_1,Col_2,Col_3,Col_4的SortKeyPosition
由于Col_1,Col_2,Col_3是排序列,序号从1依次递增,而Col_4不是排序列,所以SortKeyPosition的配置如下

Col_1 的SortKeyPosition是 1,第一个排序列,且按照升序排序

Col_2 的SortKeyPosition是 -2,第二个排序列,且按照降序排序

Col_3 的SortKeyPosition是 3,第三个排序列,且按照升序排序

Col_4 的SortKeyPosition是 0,不是排序列

SSIS 对数据排序

SSIS 对数据排序

SSIS 对数据排序

 

 

     

  • Click the column that you want to indicate is sorted and set its 

    As an example of how to set the 

    For this statement, you would set the 

    Repeat step 8 for each sorted column.Click OK.保存更新后的方案,click 保存选定的项目>推荐SSIS包配置

    ssi对数据排序