首页 > 解决方案 > 将名称从一列中分离出来

问题描述

这是我正在使用的;

FirstName - Lastname
John Smith

这就是我想要做的;

FirstName - LastName
John        Smith

我遇到了语法错误,我很难弄清楚;

update [TrainingDB].dbo.Person set
    FirstName, CHARINDEX(' ', FirstName) as firstname
    , substring(FirstName, CHARINDEX(' ', FirstName)+1, len(FirstName)-(CHARINDEX(' ', FirstName)-1)) as LastName

这是我得到的错误;

Msg 102, Level 15, State 1, Line 3 Incorrect syntax near ','.

我是否需要以 开头的第二行换行set

非常感谢任何帮助/建议。

标签: sqlsql-server

解决方案


SQL Server (MS SQL) 的解决方案:

UPDATE Person
SET Lastname = SUBSTRING(FirstName, CHARINDEX(' ', FirstName) + 1, LEN(FirstName)),
    FirstName = SUBSTRING(FirstName, 1, CHARINDEX(' ', FirstName) - 1);

小提琴

PS。如果该值不包含空格字符,则查询将失败 - 您可以添加 WHERE CHARINDEX(' ', FirstName) > 0以进行故障排除。


推荐阅读