首页 > 解决方案 > ssis 子字符串 charindex ,拆分名字和姓氏

问题描述

我在 SSIS 中有一个 Excel 源代码,[Name]其中有一列名为Joe Bloggs

我想将 [Name] 分为 [Forename] 和 [Surname]

请问如何创建两个派生列,因为它不能用作 SQL 语句

正常的 SQL 将是:

SUBSTRING([Name], 1, CHARINDEX(' ', [Name]) - 1) AS [Forename]

SUBSTRING([Name], CHARINDEX(' ', [Name]) + 1, LEN([Name])) AS [Surname]

CHARINDEX()在派生列中不起作用

请帮忙

标签: sql-serverexcelssisetlderived-column

解决方案


您可以使用TOKEN()TOKENCOUNT()函数来拆分列,如下所示:

名:

TOKEN([Name]," ",1)

姓:

TOKEN([Name]," ",TOKENCOUNT([Name]," "))

此外,该函数是SSIS 表达式FINDSTRING()中 SQL 函数的替代。CHARINDEX()举个例子:

FINDSTRING([Name], " ", 1)   

参考


推荐阅读