我在 Foreach 循环容器之前放置了一个执行 SQL 任务,以便对于完整结果集返回的每一行,脚本任务将其插入 Excel 行。
但是,在一个特定的列上,我想在遍历每一行之前按 ASC 顺序对完整结果集进行排序,以便我可以按特定顺序获得完整结果集。
我尝试在执行 SQL 任务中的 SQL 脚本中使用 Order By Clause,但它没有按预期排序。
有没有一种方法可以在传递到另一个进程(即脚本任务)之前按单列对结果集对象中的查询结果进行排序?
我在 Foreach 循环容器之前放置了一个执行 SQL 任务,以便对于完整结果集返回的每一行,脚本任务将其插入 Excel 行。
但是,在一个特定的列上,我想在遍历每一行之前按 ASC 顺序对完整结果集进行排序,以便我可以按特定顺序获得完整结果集。
我尝试在执行 SQL 任务中的 SQL 脚本中使用 Order By Clause,但它没有按预期排序。
有没有一种方法可以在传递到另一个进程(即脚本任务)之前按单列对结果集对象中的查询结果进行排序?
您似乎已经了解到,您不能在执行 SQL 任务中使用 ORDER BY。相反,在从 Execute SQL 任务加载数据后,使用 Sort 任务对数据进行排序。
使用排序转换编辑器,除了确定“传递”列或从数据流中删除它们之外,您还可以选择对哪些列进行排序以及如何查看它们。
此图使用的是 OLE DB Source,但是如果使用 Execute SQL 任务,Sort 任务的实际效果是一样的
这确实提出了一个问题:为什么要使用执行 SQL 任务?OLE DB 源使用起来会更容易、更灵活。尽可能考虑重写您的 SSIS 包以使用 OLE DB 数据源。