【问题标题】:SSIS: Fill column based on certain string from other columnSSIS:根据其他列中的某个字符串填充列
【发布时间】:2015-10-21 13:00:00
【问题描述】:

我有一个包含随机文本的表格,我想根据该文本列中的某些单词创建一个新列。

例如,我有下表:

ID | text
1  | I like that car
2  | That restaurant is too expensive
3  | We have a cat
4  | I'm sleepy

我想根据文本列包含的关键字进行搜索以获得此结果:

ID | text                                     | Category
1  | I like that car                          | Vehicle
2  | That dinner is too expensive             | Food
3  | We have a cat                            | Animals
4  | I'm sleepy                               | Other

我的想法是使用派生列与

FINDSTRING(text,"car",1) > 0 ? "Vehicle" : FINDSTRING(text,"cat",1) > 0 ? Animals : ...

但这似乎不是一个好主意,因为我确实需要在文本列中搜索 20 个关键字。我尝试使用多个派生列一个接一个地执行此操作,但它们只是一遍又一遍地覆盖新列。 还有其他建议或解决方法吗?

【问题讨论】:

    标签: ssis


    【解决方案1】:

    将您的关键字及其类别放在一个表中,并在您的源组件的 SQL 查询中填充类别列。

    【讨论】:

    • 可能希望在您的 sql 语句中为类别应用 SELECT TOP 1,以防文本为“Fed cat Dinner”。这里有两个类别,一个是动物,另一个是食物。如果每个 ID 只允许一个类别,则 SELECT TOP 1 将只获得第一个实例。
    猜你喜欢
    • 2020-09-14
    • 2021-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-19
    • 2020-02-04
    • 1970-01-01
    相关资源
    最近更新 更多