【问题标题】:Some first name fields have a middle initial and some don't, how do I remove the initial in MSSQL一些名字字段有一个中间的首字母,有些没有,如何在 MSSQL 中删除首字母
【发布时间】:2019-09-15 06:48:35
【问题描述】:

我需要将 LastName 和 FirstName 列连接到一个名为 EmployeeName 的新列中。问题是某些名字字段包含中间名首字母,而有些则不包含。我们不希望 EmployeeName 列中的初始值。如何从这些实例中删除它?

我尝试过修剪函数、左函数、右函数,但我无法让它正常工作。我已经尝试连接列然后清理它,这也不起作用

SELECT LEFT(EmployeeName, LEN(EmployeeName) - 2) FROM myTable 但这会删除最后一个字符,即使对于那些没有中间首字母的字符也是如此。我将其设为 -2 以说明名字和中间名首字母之间的空格

当 EmployeeName 字段为 Smith, John J 时,它会正确删除空格和 J

当 EmployeeName 字段为 Smith,John 时,它会删除“hn”。我不想要那个。

非常感谢

【问题讨论】:

    标签: string character trim string-length


    【解决方案1】:

    我想通了。我计算空格,然后使用 case 语句连接字段

    选择姓氏、名字、 ( 案子 当 len(firstname) - len(replace(firstname, ' ', '')) > 0 然后 concat(LEFT(firstname, LEN(firstname) - 2),', ',LastName) ELSE concat(FirstName, ', ', Lastname) 结尾 ) 作为名称组合 来自我的表

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-01
      • 2016-08-30
      • 1970-01-01
      • 2022-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多