SSIS - 派生列 - 案例陈述 - Charindex 和 Substring

SSIS - Derived Columns - Case Statment - Charindex and Substring

我在 T-SQL 中进行了以下转换:

SELECT [FIELD_A] = case when CHARINDEX('-', FIELD_B)>0 then LEFT(FIELD_B,CHARINDEX('-', FIELD_B)-1)
    else FIELD_B end,

如何使用 SQL Server Integration Services 2014 将其放入派生列对象的表达式中?

问候!!!

派生列转换使用 SSIS 表达式语法。其语法如下所示:

FINDSTRING(FIELD_B, "-", 1) > 0 ? LEFT(FIELD_B, FINDSTRING(FIELD_B, "-", 1)-1) : FIELD_B

我还没有测试过它,但它应该能让你走上正确的道路。浏览它:

  • FINDSTRING 有 3 个值 - 您要搜索的文本、要搜索的文本以及要查找的事件。
  • SSIS 表达式中的 "If" 逻辑是 ?和:符号。这 ?跟随 "If" 布尔表达式,并且 : 分隔 "If true" 和 "If False" 表达式。
  • SSIS 表达式中的文字字符串需要用双引号括起来。

查找字符串参考:https://docs.microsoft.com/en-us/sql/integration-services/expressions/findstring-ssis-expression

条件参考:https://docs.microsoft.com/en-us/sql/integration-services/expressions/conditional-ssis-expression