sql - 第一个和第二个 space 之后的值
sql - values after the 1st and 2nd space
我想将一个字段分成 3 个部分,使用空格 ' '
例子
select name from nametable;
所有信息都在同一字段中。例如 'dr john smith'
、'mrs jane smith'
.
我希望将结果分为 3 列:
select title, firstname, lastname from nametable
例如:
'dr' as title, 'john' as firstname, 'smith' as lastname
'mrs' as title, 'jane' as firstname, 'smith' as lastname
你可以使用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;
在这里,您首先将 .
替换为您从未见过的符号,例如 *
。最后,您再次将 *
替换为 .
。
我想将一个字段分成 3 个部分,使用空格 ' '
例子
select name from nametable;
所有信息都在同一字段中。例如 'dr john smith'
、'mrs jane smith'
.
我希望将结果分为 3 列:
select title, firstname, lastname from nametable
例如:
'dr' as title, 'john' as firstname, 'smith' as lastname
'mrs' as title, 'jane' as firstname, 'smith' as lastname
你可以使用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;
在这里,您首先将 .
替换为您从未见过的符号,例如 *
。最后,您再次将 *
替换为 .
。