SSIS派生列(如果那么......其他)

时间:2013-01-23 19:00:28

标签: ssis

有没有办法在SSIS派生列中复制以下表达式?

SELECT CASE
           WHEN LEN(column1) > 8
               THEN
                   column1
               ELSE
                   REPLICATE('0', 18 - LEN(column1)) + column1
           END AS column1
FROM myTable

如果值的长度小于8个字符,我想用column填充column1的值

2 个答案:

答案 0 :(得分:0)

这是一个老问题,但我今天遇到了同样的问题,下面的Derived Column Expression对我有用。它并没有具体地复制"原始问题中的SQL示例(通过使用" REPLICATE")但我发现下面的数据流中使用SSIS派生列填充值更简单一点,并且它很好一个简单的例子" If / Else"声明。 我填充10个零,因为这是SQL在原始问题中的作用。

(LEN(column1) > 8) ? column1 : ("0000000000" + (column1))

答案 1 :(得分:0)

解决方案在这里: 我已经从列下拉列表中将group作为列,然后得出了这些条件。 如果组为“现金资本支出”,则为“资本支出”,其中“内部运营支出”或“外部运营支出”为“运营支出”,否则为“其他”。

[Group] ==“现金支出”? “ Capex”:([Group] ==“ Internal Opex”?“ Opex”:([Group] ==“ External Opex”?“ Opex”:“ Other”))