Можно ли выполнить выражение "LIKE" в выражении SSIS? - PullRequest
14 голосов
/ 19 января 2011

Я использую задачу «Производный столбец» для изменения данных столбца с помощью оператора 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?

Ответы [ 2 ]

21 голосов
/ 13 сентября 2012

Я знаю, что это старый вопрос, но в эти дни я нашел хороший ответ в сети.

Если вы хотите выражение для Содержит like '%value%', вы можете использовать:

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

Если вы хотите выражение для Начните с like 'value%', вы можете использовать:

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

И, наконец, если вам нужно выражение для В конце like '%value' вы можете использовать:

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

Подробнее смотрите этот полезный ресурс: Базовые эквиваленты служб SSIS для TIKE LIKE

11 голосов
/ 19 января 2011

Полагаю, вы захотите использовать функцию FINDSTRING .

FINDSTRING (выражение_символа, строка поиска, вхождение)

...

FINDSTRING возвращает значение NULL, если либо символьное выражение, либо строка поиска имеют значение NULL.

...