2

我有一个列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]

这是一个好习惯吗?

4

2 回答 2

0

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

ISNULL([PhoneNumber]) || TRIM(PhoneNumber) == "" ? NULL(DT_STR, 50, 1252) : (DT_STR,50,1252)"Office"
于 2018-06-03T20:39:35.760 回答
0

好吧,下面是我想出的答案, ISNULL() 没有按照我的要求工作

PhoneNumber=="" || LEN(TRIM(PhoneNumber)) == 0 ? (DT_STR, 4, 1252)NULL(DT_STR, 4, 1252) : (DT_STR,50,1252)"Office"
于 2018-06-05T10:19:02.683 回答