我正在使用派生列任务使用 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 运算符?
我正在使用派生列任务使用 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 运算符?
我知道这是一个老问题,但这些天我在网上找到了一个很好的答案。
如果您想要包含 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
我相信您会想要使用 FINDSTRING 功能。
FINDSTRING(字符表达式,搜索字符串,出现)
...
如果 character_expression 或 searchstring 为 null,则 FINDSTRING 返回 null。