【问题标题】:Parse Full Name into separate column Name fields将全名解析为单独的列名称字段
【发布时间】:2019-05-07 09:10:02
【问题描述】:

SSIS 项目 SQL 2014 我在单列中有一个全名字符串,包括逗号作为输入,我需要解析姓氏、名字、中间名(如果它们存在于单独的列中以供输出)。这可以在选择中完成吗? 我已经看到了寻找字符串等特定部分的解决方案,但是根据该特定行中的字符串,没有任何东西可以分成 1 到 3 列。对于这种集成,我可以假设第一个位置是姓氏,如果存在,下一个是第一个,如果存在,下一个是中间。

【问题讨论】:

标签: sql-server tsql ssis etl ssis-2014


【解决方案1】:

要充实 cmets,您可以使用派生列转换从全名生成您的名称部分。任何不存在的部分都会在输出中出现空格(不是NULLS)。

语法是TOKEN(character_expression, delimiter_string, occurrence)

或者,在你的情况下:

LastName   | <add as new column> | TOKEN(FullName, ",", 1)
FirstName  | <add as new column> | TOKEN(FullName, ",", 2)
MiddleName | <add as new column> | TOKEN(FullName, ",", 1)

它应该看起来像这样。这与我对表名所做的类似:

【讨论】:

  • 谢谢,我会试试这个。在我问之前我已经见过其他人了,所以我想我的困惑是关于处理整个字符串。我必须使其成为有条件的,因为某些输入行将有两个带逗号的名称,而有些则只有一个名称。
猜你喜欢
  • 2019-04-16
  • 1970-01-01
  • 2019-05-17
  • 2020-04-01
  • 2016-09-01
  • 2021-02-18
  • 2021-09-17
  • 2015-01-26
  • 2020-11-08
相关资源
最近更新 更多