3

我在 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 将其放入派生列对象中的表达式中?

问候!!!

4

1 回答 1

2

派生列转换使用 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 表达式中的文字字符串需要用双引号括起来。

Findstring 参考: 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

于 2017-03-29T18:25:23.350 回答