sql - 将名称从一列中分离出来
问题描述
这是我正在使用的;
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
?
非常感谢任何帮助/建议。
解决方案
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
以进行故障排除。
推荐阅读
- javascript - 在 React 中设置单选按钮值
- php - laravel 7 更改身份验证用户表名和模型
- mysql - 如何从连接表中导出数据
- jestjs - Nuxt + Jest:如果未设置“组件”,则未知自定义元素
- r - 如何找到适合您的情节的最佳回归模型
- database - MongoDb一次又一次地停止
- python - 在光栅中剪切图像会添加黑色像素
- amazon-web-services - AWS Fargate - 不使用 SES 端点从私有子网发送电子邮件
- elasticsearch - 在 Solr 和 Lucene 中索引内容并匹配连接的电子邮件用户名
- python-3.x - 使用 Databricks 将 txt 文件从 Azure 文件复制到 Blob 存储