16

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

SQL 代码将是:

CASE WHEN Column01 LIKE '%i%' THEN '0' ELSE '1' END


在 SSIS 表达式语言中,这将是:

[Column01] == "i" ? "0" : "1"  (that's for equals i, not, LIKE %i%.


是否可以使用 LIKE 运算符?

4

2 回答 2

28

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

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

FINDSTRING(col, "value", 1) > 0`

如果您想要Start with like 'value%'的表达式,可以使用:

FINDSTRING(col, "value", 1) == 1

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

REVERSE(LEFT(REVERSE(col), X))  == "value"

更多细节看这个有用的资源:Basic SSIS Equivalents to T-SQL's LIKE

于 2012-09-13T15:10:23.417 回答
13

我相信您会想要使用 FINDSTRING 功能

FINDSTRING(字符表达式,搜索字符串,出现)

...

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

于 2011-01-19T18:44:09.770 回答