假设您正在使用SQL Server(如标题中所提到的),您可以使用以下查询将全名拆分为姓、名和中间名:
select substring(FullName, 1, patindex('%,%', FullName) - 1) as LastName,
substring(
FullName,
charindex(', ', FullName) + 2,
charindex(' ', FullName, charindex(', ', FullName) + 2) - charindex(', ', FullName) - 2) as FirstName,
substring(FullName, charindex(' ', FullName, charindex(', ', FullName) + 2) + 1, charindex(' ', FullName, -1)) as MiddleName
from Employee;
这将输出:
LastName | FirstName | MiddleName
-------------------------------------
Holmes | John | Henry
请在以下网址尝试:
http://sqlfiddle.com/#!18/e78fc/1
[编辑]
若要更新现有表格,以便将全名保存为姓、名和中间名,请执行以下操作:
(1) 通过添加FirstName、MiddleName和LastName列来更改表格:
alter table Employee
add FirstName varchar(50),
MiddleName varchar(50),
LastName varchar(50);
(2) 将全名分为姓、名和中间名,更新表格:
update Employee
set FirstName = substring(
FullName,
charindex(', ', FullName) + 2,
charindex(' ', FullName, charindex(', ', FullName) + 2) - charindex(', ', FullName) - 2),
MiddleName = substring(FullName, charindex(' ', FullName, charindex(', ', FullName) + 2) + 1, charindex(' ', FullName, -1)),
LastName = substring(FullName, 1, patindex('%,%', FullName) - 1);
(3) 删除 FullName
列:
alter table Employee drop column FullName;
您可以在sqlfiddle上尝试以上SQL语句:
http://sqlfiddle.com/#!18/a418d/2。