2011-01-19 5 views
12

Estoy usando una columna derivada de tareas para cambiar datos de la columna usando un caso en el comunicado. Sin embargo, tengo que ser capaz de decir ..¿Es posible realizar un "me gusta" en un comunicado Expresión de SSIS?

SQL código sería:

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


En SSIS lenguaje de expresión que sería:

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


¿Es posible utilizar un operador LIKE?

Respuesta

10

creo que querrá use the FINDSTRING function.

FINDSTRING (character_expression, searchstring, ocurrencia)

...

FINDSTRING devuelve null si cualquiera character_expression o searchstring son nulos.

+0

Gracias! Pude escribir esto usando lo que me diste, con suerte los resultados serán correctos. ISNULL ([Columna])? "1":! ISNULL (FINDSTRING ([Columna], "I", 1))? "0": "1" - Si la columna 1 es nulo, 1 .. entonces si la columna 1 tiene un I allí se devolverá un valor, por lo tanto, no es nulo, por lo que a continuación mostrará un 0, 1 persona. – iamtheratio

16

Sé que es una vieja pregunta, pero en estos días encontré una buena respuesta en la web.

Si desea una expresión para Contienelike '%value%' podría usar:

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

Si desea una expresión para de inicio conlike 'value%' puede usar:

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

Y, por último, si desea una expresión para final conlike '%value' puede usar:

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

Más detalles miran este recurso útil: Basic SSIS Equivalents to T-SQL's LIKE

Cuestiones relacionadas