将零追加到ssis派生列

时间:2018-12-18 20:16:31

标签: sql expression ssas derived zipcode

嗨,我要通过SSAS将数据从平面文件加载到我的表中,我想派生一个条件列,以在长度小于5时在邮政编码列中的数字数据后面附加零。 我正在使用派生列表达式:(CustomerZipCode!=“ [A-Za-z]”)&&(LEN(CustomerZipCode)<5)? RIGHT((“”“” + CustomerZipCode),5):CustomerZipCode

ForExample 上面的表达式不起作用,请指导我

谢谢。

1 个答案:

答案 0 :(得分:0)

这是SSIS吗?我的最后一个答案认为这是SSAS列,因为使用了SSAS标签。如果这是通过SSIS加载的日期,则可以使用脚本组件来执行此操作,而不要使用“派生列”。下面的示例使用C#,并且需要在“输入列”窗格中使用ReadWrite用法类型添加CustomerZipCode列。 TryParse方法检查列是否为数字,如果列包含任何文本,则返回false。 String构造函数用于创建zeroesToAppend字符串,该字符串设置为小于0的零数(该长度等于该列的长度),然后将其添加到该列的开头。这将进入Input0_ProcessInputRow方法,该方法对输入的每一行执行一次。

public override void Input0_ProcessInputRow(Input0Buffer Row)
{
    int i;
    if (int.TryParse(Row.CustomerZipCode, out i) && Row.CustomerZipCode.Length < 5)
    {
        string zeroesToAppend = new String('0', 5 - Row.CustomerZipCode.Length);

        Row.name = String.Concat(zeroesToAppend, Row.CustomerZipCode);
    }
}