SSIS表达式等同于SQL表达式

时间:2014-03-05 13:21:14

标签: sql-server sql-server-2008 ssis ssis-2008

以下SQL表达式

的SSIS等效表达式(派生列组件)是什么
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列是双精度浮点数据类型...

我在这里观察到的一件主要事情是 SSIS表达式生成器中缺少LEFT字符串函数。

SSIS专家请看看..

1 个答案:

答案 0 :(得分:0)

我已经在我的系统上试了大约1个小时......最终找到了答案。希望对其他人有用

创建了一个新列NewKPI并将其转换为dataconversion componet中的dt_str(如Justin所述)

(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))

(我使用了substring而不是Left)

感谢大家的帮助