有些名字字段中间有一个缩写,有些则没有,我如何在MSSQL中删除名字缩写

时间:2019-04-25 19:01:05

标签: string character trim string-length

我需要将LastName和FirstName列连接到一个名为EmployeeName的新列中。问题在于某些名字字段包含中间的首字母,而另一些则没有。我们不希望在EmployeeName列中使用缩写。如何从那些实例中删除它?

我尝试了修剪功能,左功能,右功能,但无法使其正常工作。我尝试串联这些列,然后清理它,这也不起作用

从myTable中选择左(EmployeeName,LEN(EmployeeName)-2) 但这会删除最后一个字符,即使对于没有中间首字母的字符也是如此。我将它作为-2来解决名字和中间名首字母之间的空间

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

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

非常感谢您

1 个答案:

答案 0 :(得分:0)

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

选择姓,名, (  案件  当len(firstname)-len(replace(firstname,'',)))> 0时  然后concat(LEFT(firstname,LEN(firstname)-2),',',LastName)  ELSE concat(名字,',',姓氏)  结束  )作为名称 从myTable