我想使用空格<%#= %>
示例
' '
所有信息都在同一个字段中。例如select name from nametable;
,'dr john smith'
。
我希望将结果分为3列:
'mrs jane smith'
例如:
'dr'作为头衔,'john'作为名字,'smith'作为姓氏
'mrs'作为头衔,'jane'作为名字,'smith'作为姓氏
答案 0 :(得分:1)
您可以使用parsename()
功能,如下所示:
declare @name varchar(100) = 'Mr John Nash'
select parsename(Replace(@name , ' ', '.'), 3) as title,
parsename(Replace(@name, ' ', '.'), 2) as firstName,
parsename(Replace(@name, ' ', '.'), 1) as lastName;
如果您的@name
中有句号,则可以使用此句:
declare @name varchar(100) = 'Mr. John Nash'
select Replace(parsename(Replace(Replace(@name, '.', '*') , ' ', '.'), 3), '*', '.') as title,
Replace(parsename(Replace(Replace(@name, '.', '*'), ' ', '.'), 2), '*', '.') as firstName,
Replace(parsename(Replace(Replace(@name, '.', '*'), ' ', '.'), 1), '*', '.') as lastName;
在这里,您首先将.
替换为您从未见过的符号,例如*
。最后,您再次将*
替换为.
。