【发布时间】:2016-05-27 08:56:48
【问题描述】:
我希望将中间名与名字分开,只有名字有空格,空格后也应该是 1 个字符,如果它有超过 1 个字符,我们应该将整个字符串视为名字。
例如:输入字符串是“MATE K”,那么它应该分成两部分,
名字 = MATE & MiddleInitial = K
但是如果输入字符串是“MATE KATE”,那么它不应该拆分并保持原样。
名字 = MATE KATE
这是我确实工作的示例,但它没有给我预期的输出。
有人可以帮帮我吗?
declare @name as varchar(50)
set @name ='MATE KATE'
select left(@name, CHARINDEX(' ', @name)) as FirstName,
substring(@name, CHARINDEX(' ', @name) +1, len(@name)-(CHARINDEX(' ',@name)-1)) as MiddleInitial
【问题讨论】:
-
MateKATE 没有空间,您需要 Firstname as MateKate
-
@mohan111 如果输入字符串有空格,那么我们也将存储空格,例如如果输入字符串是“MATE KATE”,那么我们将在名字列中存储“MATE KATE”。
-
如果会有
M Kate? -
@gofr1 在这种情况下,我们会将 M KATE 存储为名字
标签: sql sql-server