在列中的第一个单词后添加逗号

时间:2016-03-11 17:25:47

标签: sql tsql

我有一个名为people的表和一个名为NAME的列,它具有最后一个中间(如果存在)。所以SMITH JOHN J我想在第一个单词后添加一个逗号,以便更新为SMITH,JOHN J

我试过这个但是它爆炸了:

update people
set name = (CHARINDEX(' ', 0), 0, ',')

我知道我已经离我很近了,但是它已经躲过了我:(

1 个答案:

答案 0 :(得分:2)

您可以将STUFF()CHARINDEX()LEFT()一起使用:

update people
set name = STUFF(name,1,CHARINDEX(' ',name )-1,LEFT(name ,CHARINDEX(' ',name )-1)+', ')
WHERE CHARINDEX(' ',name) > 0

可能会添加WHERE以确保名称中有空格,因此不会出现错误或CASE表达式。

还可以将REPLACE()CHARINDEX()LEFT()

一起使用
REPLACE(name,LEFT(name,CHARINDEX(' ',name)-1),LEFT(name,CHARINDEX(' ',name)-1)+',')