2016-11-18 2 views
0

Примечание: это SSIS не SQL ServerSSIS: Удалить все, чтобы слева от символа в строке

Я потянув данные из файла и некоторые столбцы имеют имена, как это:

1;&count chocula 
13;&roger ramjet 
123;&mary smith 
45678;&john adams 

Как удалить амперсанд и все, что осталось от него? Я использую преобразование fx для символа. Я думал о том, чтобы найти положение символа для амперсанда, а затем удалить все, начиная от начала до этой позиции, но у ssis нет этой функции. Амперсанд может быть в любом положении, я не могу сказать, что он гарантированно находится в таком положении.

Благодаря

+1

Используйте FindString, чтобы получить позицию и Затем используйте RIGHT (или подстроку для старых версий), чтобы удалить все до & Something (не проверено): RIGHT ([yourcolumn], LEN ([yourcolumn]) - FINDSTRING ([yourcolumn], "&", 1)) – Joost

ответ

0

Функция RIGHT() возвращает последние X символов строки.

RIGHT("13;&roger ramjet",12)          = roger ramjet 

Выше X равно 12. Разумеется, двенадцать не будут работать для каждой строки. Вместо этого мы можем вычислить X, вычитая длину строки из положения амперсанда.

LEN(MyColumn])             = 16 
FINDSTRING([MyColumn],"&",1)          = 4 

Или другими словами ...

RIGHT([MyColumn], LEN([MyColumn]) - FINDSTRING([MyColumn],"&",1)) = roger ramjet 
+0

Я забыл опубликовать ответ здесь. Спасибо за помощь Трое. Это сработало для меня: REPLACE ([MyColumn], SUBSTRING (MyColumn, 1, FINDSTRING (MyColumn, "#", 1)), "") – Sven

+0

Не стоит беспокоиться. Спасибо, что вернулись и отметили! Рад, что вы разобрались! –

Смежные вопросы