【问题标题】:Split rows based on defined values for column from csv file根据 csv 文件中列的定义值拆分行
【发布时间】:2020-05-20 23:46:59
【问题描述】:

我在 csv 文件中有如下数据,我想使用 ssis 技术从中提取某些数据

我只需要 ID 列 231458764591022 中的那些行

+--------+------+-----------+
|   ID   | Name |  Address  |
+--------+------+-----------+
|   1022 | XYZ  | Texas     |
|   2347 | zzz  | Virginia  |
|  23145 | TTT  | New York  |
|  45673 | ZWT  | Maryland  |
|   9870 | RET  | Florida   |
| 876459 | TERW | Oklahoma  |
| 980456 | YUIE | Georgia   |
+--------+------+-----------+

预期结果

+------+----------+
| Name | Address  |
+------+----------+
| TTT  | New York |
| TERW | Oklahoma |
| XYZ  | Texas    |
+------+----------+

【问题讨论】:

    标签: sql-server csv ssis etl flat-file


    【解决方案1】:

    您可以简单地在数据流任务中使用条件拆分组件,使用类似的表达式根据 ID 过滤行:

    [ID] == 23145 || [ID] == 876459 || [ID] == 1022
    

    有关 SSIS 条件拆分的更多信息,您可以参考以下文章:


    更新 1 - 使用两列过滤

    尝试在表达式中使用&&(和)和||(或)运算符:

    ([Name] == "TTT" && [Address] == "New York") || ([Name] == "TERW" && [Address] == "Oklahoma") || ([Name] == "XYZ" && [Address] == "Texas")
    

    【讨论】:

    • Hadi - 对不起,我刚刚意识到我只想要两列没有 Id 列,我更正了我的问题的结果。
    猜你喜欢
    • 2017-10-10
    • 1970-01-01
    • 2015-03-06
    • 2015-01-09
    • 2018-11-04
    • 1970-01-01
    • 2012-04-14
    • 2021-07-25
    • 1970-01-01
    相关资源
    最近更新 更多