我有一个列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]
数据类型?
这是一个好习惯吗?
答案 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"