2011-01-19 13 views
12

Sto utilizzando un'attività derivata della colonna per modificare i dati della colonna utilizzando un'istruzione CASE WHEN. Tuttavia, ho bisogno di essere in grado di dire ..È possibile eseguire un'istruzione "LIKE" in un'espressione SSIS?

CODICE SQL SAREBBE:

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


In SSIS Expression Language sarebbe:

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


E ' possibile usare un operatore LIKE?

risposta

10

Credo che vorrai use the FINDSTRING function.

FindString (character_expression, searchstring, occorrenza)

...

FindString restituisce null se sia character_expression o termine di ricerca sono nulli.

+0

Grazie! Sono stato in grado di scrivere ciò usando ciò che mi hai dato, speriamo che i risultati siano corretti. ISNULL ([colonna])? "1":! ISNULL (FINDSTRING ([Column], "I", 1))? "0": "1" - Se la colonna 1 è nullo, allora 1 .. THEN se la colonna 1 ha un I in là restituirà un valore, quindi non null, quindi mostrerà uno 0, altrimenti 1. – iamtheratio

16

So che è una vecchia domanda, ma in questi giorni ho trovato una buona risposta sul web.

Se si desidera un espressione per Contienelike '%value%' si potrebbe usare:

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

Se si desidera un espressione per Inizia conlike 'value%' si potrebbe usare:

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

E, infine, se vuoi un'espressione per Fine conlike '%value' puoi usare:

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

Maggiori dettagli guardano questa risorsa utile: Basic SSIS Equivalents to T-SQL's LIKE