如何替换SSIS中字符串中除最后一个字符之外的所有字符?
How to Replace all occurrence of a character except last in a string in SSIS?
我有这样一个字符串编号:
1.000.000.00
所以我必须删除除最后一个点以外的所有点,它看起来像这样:
1000000.00
此外,如果只有一个点,则应保留它。
示例:
INPUT | OUTPUT
-----------------------------------
1.00 | 1.00
1.000.00 | 1000.00
我尝试了什么:
我用这个表达式创建了一个派生列
LEFT([Column],FINDSTRING([Column],".",LEN([Column]) - LEN(REPLACE([Column],".",""))) - 1)
+ SUBSTRING([Column],FINDSTRING([Column],".",LEN([Column]) - LEN(REPLACE([Column],".",""))) + 1,LEN([Column]))
它保留第一个点而不是最后一个点。
您可以尝试使用 SSIS TOKEN() 和 TOKENCOUNT() 函数。
TOKENCOUNT(column,".") == 4 ? TOKEN(1) + TOKEN(2) + TOKEN(3) + "." + TOKEN(4) :
( TOKENCOUNT(column,".") == 3 ? TOKEN(1) + TOKEN(2) + "." + TOKEN(3) :
( TOKENCOUNT(column,".") == 2 ? column :
( TOKENCOUNT(column,".") == 0 ? column: “" ) ) )
我有这样一个字符串编号:
1.000.000.00
所以我必须删除除最后一个点以外的所有点,它看起来像这样:
1000000.00
此外,如果只有一个点,则应保留它。
示例:
INPUT | OUTPUT
-----------------------------------
1.00 | 1.00
1.000.00 | 1000.00
我尝试了什么:
我用这个表达式创建了一个派生列
LEFT([Column],FINDSTRING([Column],".",LEN([Column]) - LEN(REPLACE([Column],".",""))) - 1)
+ SUBSTRING([Column],FINDSTRING([Column],".",LEN([Column]) - LEN(REPLACE([Column],".",""))) + 1,LEN([Column]))
它保留第一个点而不是最后一个点。
您可以尝试使用 SSIS TOKEN() 和 TOKENCOUNT() 函数。
TOKENCOUNT(column,".") == 4 ? TOKEN(1) + TOKEN(2) + TOKEN(3) + "." + TOKEN(4) :
( TOKENCOUNT(column,".") == 3 ? TOKEN(1) + TOKEN(2) + "." + TOKEN(3) :
( TOKENCOUNT(column,".") == 2 ? column :
( TOKENCOUNT(column,".") == 0 ? column: “" ) ) )