以下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专家请看看..
答案 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)
感谢大家的帮助