在单独的列中划分个人姓名
Divide personal names in separate columns
我有一个名为#MyNames.This table 的table,其中一栏包含人员的全名(姓名space 姓氏)。在这个专栏中,我们可以用 space 区分名字和姓氏,在 them.From 左边我们有名字,在 space 之后我们有 surname.Below 你可以看到 table:
所以我的目的是将这个名称为 MyFullName 的列分成两个单独的列,分别称为 ,FirstName" 和 ,LastName''。为了做到这一点,我尝试使用以下代码:
SELECT LEFT(MyFullName,charindex(' ', MyFullName) - 1) AS FirstName, RIGHT(MyFullName,charindex(' ', MyFullName)-1 ) AS LastName
from #MyNames
此代码的输出不好,我得到如下 table 的结果:
那么谁能帮助我如何修复此代码并正确获得结果,以及如何在一列中输入名字,在另一列中输入名字?
显然,姓氏子句无法正常工作。
而不是使用 RIGHT(MyFullName,charindex(' ', MyFullName)-1 )
考虑 SUBSTRING(MyFullName,charindex(' ', MyFullName) + 1, 100)
(或任何字段长度)。
更好的方法(虽然在我看来不太容易阅读)是用空白的“”字符替换名字部分。
STUFF(MyFullName,1,charindex(' ', MyFullName),'')
这些应该都有效
SELECT LEFT(MyFullName,charindex(' ', MyFullName)-1) AS FirstName,
SUBSTRING(MyFullName,charindex(' ', MyFullName)+1, 100) AS LastName
from #MyNames
SELECT LEFT(MyFullName,charindex(' ', MyFullName)-1) AS FirstName,
STUFF(MyFullName,1,charindex(' ', MyFullName),'') AS LastName
from #MyNames
在您的查询中稍作更正应该可以解决问题。
SELECT LEFT(MyFullName,charindex(' ', MyFullName) - 1) AS FirstName
, RIGHT(MyFullName,len(MyFullName) - charindex(' ', MyFullName)) AS LastName
from #MyNames
我有一个名为#MyNames.This table 的table,其中一栏包含人员的全名(姓名space 姓氏)。在这个专栏中,我们可以用 space 区分名字和姓氏,在 them.From 左边我们有名字,在 space 之后我们有 surname.Below 你可以看到 table:
所以我的目的是将这个名称为 MyFullName 的列分成两个单独的列,分别称为 ,FirstName" 和 ,LastName''。为了做到这一点,我尝试使用以下代码:
SELECT LEFT(MyFullName,charindex(' ', MyFullName) - 1) AS FirstName, RIGHT(MyFullName,charindex(' ', MyFullName)-1 ) AS LastName
from #MyNames
此代码的输出不好,我得到如下 table 的结果:
那么谁能帮助我如何修复此代码并正确获得结果,以及如何在一列中输入名字,在另一列中输入名字?
显然,姓氏子句无法正常工作。
而不是使用 RIGHT(MyFullName,charindex(' ', MyFullName)-1 )
考虑 SUBSTRING(MyFullName,charindex(' ', MyFullName) + 1, 100)
(或任何字段长度)。
更好的方法(虽然在我看来不太容易阅读)是用空白的“”字符替换名字部分。
STUFF(MyFullName,1,charindex(' ', MyFullName),'')
这些应该都有效
SELECT LEFT(MyFullName,charindex(' ', MyFullName)-1) AS FirstName,
SUBSTRING(MyFullName,charindex(' ', MyFullName)+1, 100) AS LastName
from #MyNames
SELECT LEFT(MyFullName,charindex(' ', MyFullName)-1) AS FirstName,
STUFF(MyFullName,1,charindex(' ', MyFullName),'') AS LastName
from #MyNames
在您的查询中稍作更正应该可以解决问题。
SELECT LEFT(MyFullName,charindex(' ', MyFullName) - 1) AS FirstName
, RIGHT(MyFullName,len(MyFullName) - charindex(' ', MyFullName)) AS LastName
from #MyNames