我在表1中有一个名为Employee name
的列
Example: Mr.FirstName LastName
等各种各样的标题,但是同一列中没有标题的员工姓名。我即将拆分单列并在新表(表2)中插入三个不同的列,如FirstName,LastName因此,在插入新表时,我无法像我提到的那样拆分员工列名。任何帮助都会非常感激我从LINQ开始,所以我不了解很多SQL函数。
更新:示例数据
答案 0 :(得分:1)
对于您在问题中指定的最简单的情况,以下查询应该起作用
SELECT *,
SUBSTRING(Employee_name, 0, CHARINDEX('.', Employee_name)) AS Title,
SUBSTRING(Employee_name,
CHARINDEX('.', Employee_name)+1,
CHARINDEX(' ', Employee_name)) AS FirstName,
SUBSTRING(Employee_name,
CHARINDEX(' ', Employee_name)+1,
LEN(Employee_name)) AS LastName
FROM Employee;
答案 1 :(得分:1)
这是一个例子。
DECLARE @name varchar(100) = 'Mr.FirstName LastName'
SELECT
LEFT(@name, CHARINDEX('.', @name)) AS Title,
SUBSTRING(@name, CHARINDEX('.', @name)+1, CHARINDEX(' ', @name)-CHARINDEX('.', @name)) AS FirstName,
SUBSTRING(@name, CHARINDEX(' ', @name)+1, 1000) AS LastName
需要......
.
为标题。.
之后的所有内容,直到第一个space
为FirstName space
之后的所有内容,作为LastName 注意:如果名称不适合此模式,则不会检查错误。