Помогите с подстрокой в ​​SSIS

Привет всем,

У меня небольшая проблема с функцией SubString в SSIS (производный столбец).

Итак..
Возможные входные строки:

Игрушки|Категория|Машины|Лего

Игрушки|Горячие и новые|Девочки и образ жизни|Кукла

Игрушки|Новинки

Барби|Категория|Мобильные

Мне нужно отфильтровать слово после второго "|".

В первом случае: «Автомобили».

Во втором случае: "Girls&Lifestyle"

В третьем случае: ""

В четвертом случае: «Мобильный»

Моя попытка была: SUBSTRING(Category,FINDSTRING(Category,"|",2)+1,FINDSTRING(Category,"|",3))

Это не работает, потому что FINDSTRING(Category,"|",3) дает индекс, но мне нужна длина Word!! Как я могу подсчитать символы слова в строке?

Спасибо за вашу помощь и извините за мой плохой английский!

С наилучшими пожеланиями Алекс


person Alexo    schedule 16.03.2011    source источник


Ответы (1)


Это должно делать то, что вы хотите ... хотя немного грязно!

SUBSTRING( Category, FINDSTRING( Category, "|", 2 )+1,FINDSTRING( Category, "|", 3 )-FINDSTRING( Category, "|", 2 )-1)
person grapefruitmoon    schedule 16.03.2011
comment
Заметил, что это не совсем работает для строк только с двумя категориями, вот обновленная версия: SUBSTRING( @[User::Category], FINDSTRING( @[User::Category], |, 2 )+1,FINDSTRING( @[Пользователь::Категория]+|, |, 3 )-FINDSTRING( @[Пользователь::Категория], |, 2 )-1) - person grapefruitmoon; 16.03.2011