SSIS中的ISNULL功能

时间:2018-06-01 07:50:13

标签: sql-server unicode ssis isnull non-unicode

我有一个列PhoneNumber varchar(50),我希望根据以下内容为派生列PhoneNumberType varchar(50)构建一个表达式,

IF PhoneNumber <> NULL then
Set to ""Office""
Else
Set to NULL
END IF

我试过

!ISNULL(PhoneNumber ) ? "Office" : PhoneNumber 

但是我将列映射为

时出错
  

列PhoneNumberType无法在unicode和。之间进行转换   非unicode字符串数据类型

更新:我是否可以转到派生列组件的高级编辑器并在列属性中选择string [DT_STR]而不是自动生成的unicode string [DT_WSTR]数据类型?

这是一个好习惯吗?

2 个答案:

答案 0 :(得分:1)

您可以使用以下表达式生成DT_STR列,并检查空字符串:

ISNULL([PhoneNumber]) || TRIM(PhoneNumber) == "" ? NULL(DT_STR, 50, 1252) : (DT_STR,50,1252)"Office"

答案 1 :(得分:0)

那么,  bellow是我想出的答案,ISNULL()没有按照我的要求工作

PhoneNumber=="" || LEN(TRIM(PhoneNumber)) == 0 ? (DT_STR, 4, 1252)NULL(DT_STR, 4, 1252) : (DT_STR,50,1252)"Office"