需要根据 SSIS 中的某些条件过滤 excel 行
Need to filter excel rows based on some condition in SSIS
我有一个包含少量记录的源 excel 文件。截至目前,我正在 excel 文件中应用过滤器,复制新结果集(应用过滤器后),然后将新的 Sheet 粘贴到相同的 excel 中,然后加载新数据在 SQL 服务器中设置。
我想自动执行任务,这样我就可以避免复制粘贴,因为文件数量较多。我做了 Google 搜索并发现条件拆分可能会有帮助,但是当我在相同的条件上应用条件拆分时,我没有发现最终结果集有任何差异。
因此请求指导。
假设您要将三个过滤器应用于三个不同列的某些 Excel 数据以获得最终数据集。
假设您的 Excel sheet 有以下列:
- ProductId(产品的整数 ID 字段)
- AmountOfSale(价值在
美元)
- StoreId(商店位置的整数 id 字段
销售)
- 已售数量(整数值)
现在假设您要应用以下过滤器:
- 销售额 > 100.00 美元
- StoreId = 13(您只想查看 StoreId 13 的数据)
- 售出数量在 1 到 10 之间
我假设您在数据流任务中正确配置了 Excel 源连接。
添加一个 Conditional Split
任务并将 Excel 源的输出连接到它。进入 Conditional Split
配置编辑器。单击 Output Name
下的框并为过滤后的输出命名,可能类似于 PassedFilters
。接下来,我们将构建过滤条件。然后在 Condition
下添加以下表达式:
[AmountOfSale] > 100.00 && [StoreId] == 13 && ([QuantitySold] >= 1 && [QuantitySold] <= 10)
点击 OK
并保存 Conditional Split
任务。现在将您的目标连接添加到您的数据流。将 Conditional Split 任务连接到 Destination 连接器,SSIS/SSDT 应该会弹出 Input Output Selection
的对话框。从输出下拉列表中选择您的 PassedFilters
输出,并且应该预先填充目标输入。如果不是,则选择正确的输入。然后点击 OK
.
现在只有通过过滤器的行才会发送到目标。
我有一个包含少量记录的源 excel 文件。截至目前,我正在 excel 文件中应用过滤器,复制新结果集(应用过滤器后),然后将新的 Sheet 粘贴到相同的 excel 中,然后加载新数据在 SQL 服务器中设置。
我想自动执行任务,这样我就可以避免复制粘贴,因为文件数量较多。我做了 Google 搜索并发现条件拆分可能会有帮助,但是当我在相同的条件上应用条件拆分时,我没有发现最终结果集有任何差异。
因此请求指导。
假设您要将三个过滤器应用于三个不同列的某些 Excel 数据以获得最终数据集。
假设您的 Excel sheet 有以下列:
- ProductId(产品的整数 ID 字段)
- AmountOfSale(价值在 美元)
- StoreId(商店位置的整数 id 字段 销售)
- 已售数量(整数值)
现在假设您要应用以下过滤器:
- 销售额 > 100.00 美元
- StoreId = 13(您只想查看 StoreId 13 的数据)
- 售出数量在 1 到 10 之间
我假设您在数据流任务中正确配置了 Excel 源连接。
添加一个 Conditional Split
任务并将 Excel 源的输出连接到它。进入 Conditional Split
配置编辑器。单击 Output Name
下的框并为过滤后的输出命名,可能类似于 PassedFilters
。接下来,我们将构建过滤条件。然后在 Condition
下添加以下表达式:
[AmountOfSale] > 100.00 && [StoreId] == 13 && ([QuantitySold] >= 1 && [QuantitySold] <= 10)
点击 OK
并保存 Conditional Split
任务。现在将您的目标连接添加到您的数据流。将 Conditional Split 任务连接到 Destination 连接器,SSIS/SSDT 应该会弹出 Input Output Selection
的对话框。从输出下拉列表中选择您的 PassedFilters
输出,并且应该预先填充目标输入。如果不是,则选择正确的输入。然后点击 OK
.
现在只有通过过滤器的行才会发送到目标。