Выражение SSIS, эквивалентное выражению SQL

что такое эквивалентное выражение SSIS (компонент производного столбца) приведенного ниже выражения SQL

cast(CASE WHEN len(cast(KPI as varchar(3))) > 2 THEN 
        CASE substring(cast(KPI as varchar(3)),3,1)
            WHEN 1 then left(cast(KPI as varchar(3)),1) + 'a'
            WHEN 2 then left(cast(KPI as varchar(3)),1) + 'b'
            WHEN 3 then left(cast(KPI as varchar(3)),1) + 'c'
            WHEN 4 then left(cast(KPI as varchar(3)),1) + 'd'
        END
        ELSE cast(KPI as varchar(3))
    END as VarChar(3)) as 'ColumnName'

здесь столбец Kpi - это тип данных с плавающей запятой двойной точности ...

одна важная вещь, которую я здесь заметил, - это функция LEFT String отсутствует в построителе выражений SSIS.

Эксперты SSIS, пожалуйста, посмотрите ..


person user1254579    schedule 05.03.2014    source источник
comment
что вы имеете в виду под выражением SSIS? В каком элементе вы хотите использовать этот код? Этот код вы можете преобразовать в код столбца, производный от SSIS, но в этом и суть, если вы можете просто использовать в элементе источника базы данных этот код ...   -  person Justin    schedule 05.03.2014
comment
Мне нужно использовать это в КОМПОНЕНТЕ ПРОИЗВОДНОЙ КОЛОНКИ   -  person user1254579    schedule 05.03.2014
comment
Я не предлагаю вам использовать это в производном столбце. Почему вы не можете сделать это в исходном запросе.   -  person Maverick    schedule 05.03.2014


Ответы (1)


Я пробовал около 1 часа в своей системе .. наконец нашел ответ .. Надеюсь, это будет полезно для кого-то еще

создал новый столбец NewKPI и преобразовал его в dt_str в компоненте преобразования данных (как упомянул Джастин)

(DT_STR, 3,1252) (LEN (NewKPI) ‹= 2? NewKPI: (SUBSTRING (NewKPI, 3,1) ==" 1 ")?" 2A ": (SUBSTRING (NewKPI, 3,1) ==" 2 ")?" 2b ": (SUBSTRING (NewKPI, 3,1) ==" 3 ")?" 2c ": (SUBSTRING (NewKPI, 3,1) ==" 4 ")?" 2d ": NULL ( DT_WSTR, 3))

(Я использовал подстроку вместо Left)

Спасибо всем за помощь

person user1254579    schedule 05.03.2014
comment
Если вы поместите KPI в Data Conversion и конвертируете до Derived column, вы сэкономите, вероятно, половину места (ваш код будет в 2 раза короче). - person Justin; 06.03.2014
comment
Джастин, спасибо за мудрое мнение !! - person user1254579; 06.03.2014