SSIS - 派生列 - 案例统计 - Charindex和子串

时间:2017-03-29 13:21:01

标签: sql-server ssis substring charindex derived-column

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

问候!!!

1 个答案:

答案 0 :(得分: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