SSIS派生列表达式求助:根据CompanyName值设置CustomerType
SSIS派生列:根据CompanyName设置CustomerType的正确写法
你的原表达式问题出在对SSIS空值判断逻辑的理解有误——你把数据库NULL值当成了字符串"Null"来判断,而且嵌套的三元表达式完全没必要,以下是两种对应场景的正确写法:
场景1:CompanyName是数据库NULL值(而非字符串"NULL")
直接用SSIS的ISNULL()函数判断空值,表达式简化为:
ISNULL(CompanyName) ? "Person" : "Company"
逻辑说明:如果CompanyName字段为NULL,CustomerType赋值"Person";只要字段不为空(不管是有字符串内容还是空字符串),都赋值"Company"。
场景2:CompanyName存储的是字符串"NULL"(比如源数据里用字符串标记空值)
如果你的数据源里,空值是用字符串"NULL"表示的,那表达式写成:
CompanyName == "NULL" ? "Person" : "Company"
逻辑说明:匹配到字符串"NULL"时赋值"Person",其他情况(包括真正的NULL、其他字符串)赋值"Company"。
操作步骤提示
在SSIS的派生列组件中:
- 选择「添加新列」,设置列名为
CustomerType - 数据类型选择字符串类型(比如
DT_WSTR,长度根据实际需求设置,比如50) - 将对应场景的表达式粘贴到表达式输入框即可
内容的提问来源于stack exchange,提问作者biruk L
相关产品推荐
相关产品推荐

