gpt4 book ai didi

sql-server - ssis 子字符串 charindex ,拆分名字和姓氏

转载 作者:行者123 更新时间:2023-12-04 09:10:19 26 4
gpt4 key购买 nike

我在 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()在派生列中不起作用
请帮忙

最佳答案

正确,SSIS 是与 TSQL 不同的产品,因此您需要使用适合语言的语法。
您需要添加派生列组件来查找第一个空格。 FINDSTRING运算符是您正在寻找的。 FINDSTRING([Name]," ",1)并将其添加为名为 SpacePosition 的新列
之后添加第二个派生列组件,以允许您创建名字/姓氏列。这里的语法应该与您提供的相匹配

SUBSTRING([Name], 1, [SpacePosition] - 1)
RIGHT([Name], [SpacePosition] + 1)
我提倡分两步执行此操作的原因是,如果您得到不正确的结果,那么您至少可以确认 SpacePosition 是否产生了预期的结果。因为你最终可能会得到 Madonna , Prince , 或 Lee Harvey Oswald在您的输入数据中。
Remove Text from a String in SSIS derived column

关于sql-server - ssis 子字符串 charindex ,拆分名字和姓氏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63359951/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com