是否可以在SSIS表达式中执行"LIKE"语句?

iam*_*tio 14 sql ssis dataflowtask case-statement sql-like

我正在使用派生列任务使用CASE WHEN语句更改列数据.但是,我需要能够说..

SQL代码将是:

CASE WHEN Column01 LIKE '%i%' THEN '0' ELSE '1' END
Run Code Online (Sandbox Code Playgroud)


在SSIS表达语言中将是:

[Column01] == "i" ? "0" : "1"  (that's for equals i, not, LIKE %i%.
Run Code Online (Sandbox Code Playgroud)


是否可以使用LIKE运算符?

Gui*_*tos 22

我知道这是一个老问题,但是现在我在网上找到了一个很好的答案.

如果你想要一个包含Contains 的表达式,like '%value%'你可以使用:

FINDSTRING(col, "value", 1) > 0`
Run Code Online (Sandbox Code Playgroud)

如果你想要一个Start 的表达式,like 'value%'你可以使用:

FINDSTRING(col, "value", 1) == 1
Run Code Online (Sandbox Code Playgroud)

最后,如果你想使用End 的表达式,like '%value'你可以使用:

REVERSE(LEFT(REVERSE(col), X))  == "value"
Run Code Online (Sandbox Code Playgroud)

更多细节看起来这个有用的资源:基本SSIS等同于T-SQL的LIKE


Con*_*ler 11

我相信你会想要使用FINDSTRING功能.

FINDSTRING(character_expression,searchstring,occurrence)

...

如果character_expression或searchstring为null,则FINDSTRING返回null.