【问题标题】:Remove the Middle Name letter from firstName Column in SQL [duplicate]从 SQL 中的 firstName 列中删除中间名字母 [重复]
【发布时间】:2019-01-07 15:47:16
【问题描述】:

我有一列 FirstName = JOYCE A 我想删除“A”,即中间名并为其编写 SQL 命令 结果应该是FirstName = JOYCE

请帮忙。

【问题讨论】:

  • 小心,我敢打赌并不是所有的用例都这么简单。当他们有超过 3 个名字时会发生什么?后缀呢?名称规范化非常困难。
  • 关于名称规范化的主题...kalzumeus.com/2010/06/17/…

标签: sql-server tsql ssis


【解决方案1】:

如果您只想显示更新后的名字,请尝试:

SELECT LEFT(FirstName, CHARINDEX(' ', FirstName + ' ') - 1) AS FirstName
FROM yourTable;

Demo

如果你真的想更新你的表,那么使用:

UPDATE yourTable
SET FirstName = LEFT(FirstName, CHARINDEX(' ', FirstName + ' ') - 1);

【讨论】:

    【解决方案2】:

    我假设因为 SSIS 标签是关于您希望在 SSIS 中执行此操作的问题?如果是这样,请使用以下代码将 C# 脚本组件添加到源组件和目标组件之间的数据流任务。需要在脚本组件编辑器的输入列页面上将要修改的列添加为使用类型为ReadWrite 的可用列。这将进入Input0_ProcessInputRow 方法,该方法对通过它发送的每一行执行一次。

    Row.FirstName= Row.FirstName.Substring(0, Row.FirstName.IndexOf(' '));
    

    【讨论】:

      猜你喜欢
      • 2019-02-28
      • 2019-05-29
      • 2017-03-11
      • 2020-01-23
      • 1970-01-01
      • 1970-01-01
      • 2017-11-01
      • 1970-01-01
      • 2018-03-23
      相关资源
      最近更新 更多