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