【发布时间】:2022-01-05 16:50:41
【问题描述】:
我想添加一个名为 CategoryCode 的列,它将采用 Category 列的前 3 个字母 + Subcategory 列的前 3 个字母 + 任意数字。
问题是我在CategoryCode 列中有一些值,我不必更改。我只需要对为空的值进行操作。
任何人都可以帮助我吗?会有很大帮助的。
【问题讨论】:
标签: sql-server ssis etl derived-column
我想添加一个名为 CategoryCode 的列,它将采用 Category 列的前 3 个字母 + Subcategory 列的前 3 个字母 + 任意数字。
问题是我在CategoryCode 列中有一些值,我不必更改。我只需要对为空的值进行操作。
任何人都可以帮助我吗?会有很大帮助的。
【问题讨论】:
标签: sql-server ssis etl derived-column
您可以简单地添加一个派生列,使用以下表达式替换输入 CategoryCode 列:
REPLACENULL([CategoryCode],LEFT([Category],3) + LEFT([SubCategory],3) + "123")
很遗憾,SSIS 派生列不能用于添加自动增量或随机生成的数字。要实现这一点,您需要使用脚本组件转换:
if(row.CategoryCode_IsNull == true)
row.outCategoryCode = row.Category.Substring(0,3) + row.SubCategory.Substring(0,3) + id.toString();
else
row.outCategoryCode = row.CategoryCode;
更详细的例子:
【讨论】: