SSIS How to get part of a string by separator

前端 未结 4 1911
旧巷少年郎
旧巷少年郎 2020-12-11 01:12

I need an SSIS expression to get the left part of a string before the separator, and then put the new string in a new column. I checked in derived column, it seems no such e

相关标签:
4条回答
  • 2020-12-11 01:38

    of course you can:

    enter image description here

    just configure your derived columns like this:

    enter image description here

    Here is the expression to make your life easier:

    SUBSTRING(name,1,FINDSTRING(name,"-",1) - 1)
    

    FYI, the second "1" means to get the first occurrence of the string "-"

    EDIT: expression to deal with string without "-"

    FINDSTRING(name,"-",1) != 0 ? (SUBSTRING(name,1,FINDSTRING(name,"-",1) - 1)) : name
    
    0 讨论(0)
  • 2020-12-11 01:42

    Better late than never, but I wanted to do this too and found this.

    TOKEN(character_expression, delimiter_string, occurrence)
    
    TOKEN("a little white dog"," ",2)
    

    returns little the source is below

    http://technet.microsoft.com/en-us/library/hh213216.aspx

    0 讨论(0)
  • 2020-12-11 01:44

    if SUBSTRING length param returns -1 then it results in error, "The length -1 is not valid for function "SUBSTRING". The length parameter cannot be negative. Change the length parameter to zero or a positive value."

    0 讨论(0)
  • 2020-12-11 02:01

    You can specify the length to copy in the SUBSTRING function and check for the location of the dash using CHARINDEX

    SELECT SUBSTRING(@sString, 1, CHARINDEX('-',@sString) - 1)
    

    For the SSIS expression it is pretty much the same code:

    SUBSTRING(@[User::String], 1, FINDSTRING(@[User::String], "-", 1)-1)
    
    0 讨论(0)
提交回复
热议问题