Excel SSI仅从全名中提取一个名字

Excel SSI仅从全名中提取一个名字,excel,ssis,expression,Excel,Ssis,Expression,对SSIS来说还是新手,但我在尝试将excel文件加载到数据库时遇到了问题。我试图先将名字加载到数据库表中,然后再将姓氏加载到数据库表中,但由于某些原因,excel文件的设置有点奇怪 这是excel文件的一个示例 Excel文件 名字姓氏 ---------- --------- 杰森·多伊 德里克史密斯 约翰·多伊 Carol Smith将当前的子字符串…包装为三元表达式(也称为内联IF),以便仅在修剪值中有空格时才执行子字符串…。否则它只会修剪 下面是一个psuedocode概要,介

对SSIS来说还是新手,但我在尝试将excel文件加载到数据库时遇到了问题。我试图先将名字加载到数据库表中,然后再将姓氏加载到数据库表中,但由于某些原因,excel文件的设置有点奇怪

这是excel文件的一个示例 Excel文件

名字姓氏
----------    ---------
杰森·多伊
德里克史密斯
约翰·多伊

Carol Smith
将当前的
子字符串…
包装为三元表达式(也称为内联IF),以便仅在修剪值中有空格时才执行
子字符串…
。否则它只会修剪

下面是一个psuedocode概要,介绍了它的外观:

{Condition} ? {Value if True} : {Value if False}

{Condition} is a test that will be TRUE if the trimmed string contains a blank space, and false if it doesn't.   The FINDSTRING() function should be useful here.

{Value if True} can simply be the current SUBSTRING(...) that you have in your last code snippet.

{Value if False} can simply be the TRIM(...) that you have in your second-to-last code snippet.

派生列表达式应如下所示:

FINDSTRING(TRIM(FULLNAME)," ",1) == 0 ? FULLNAME : SUBSTRING(TRIM(FULLNAME),1,FINDSTRING(TRIM(FULLNAME)," ",1))

我会检查修剪的结果,看看后面2个空格是否为空。这避免了像Ann Lee这样复杂的名字

substring(  trim([First name]),len(trim([First name]))-2,1)   ==" " ? substring(trim([First name]),1, len(trim([First name]))-3) : trim([First name])

谢谢,我没有在派生列中使用条件拆分的经验。我试着把它读了一遍,但还是没能理解。因此,我需要原始的
子字符串(Trim(FULLNAME).
先将其设置为某物,然后设置
和if/else结果?非常感谢您为我解释!