我有一个名为people
的表和一个名为NAME
的列,它具有最后一个中间(如果存在)。所以SMITH JOHN J我想在第一个单词后添加一个逗号,以便更新为SMITH,JOHN J
我试过这个但是它爆炸了:
update people
set name = (CHARINDEX(' ', 0), 0, ',')
我知道我已经离我很近了,但是它已经躲过了我:(
答案 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)+',')