如何从一列中分离和显示数据?

时间:2016-09-21 17:01:07

标签: sql-server

我在将单列值拆分为多个列值时遇到问题。

关于这个:

Name
------------
Tom Howard
Michael Black
Wiliam Cruise
Bet Moor

我需要这样的输出:

first_name          last_name
------------------------------
Tom                  Howard
Michael              Black
Wiliam               Cruise
Bet                  Moor

我必须从一列(名称)显示数据(last_name)。 谢谢

2 个答案:

答案 0 :(得分:0)

根据您的版本,您可以使用PARSENAME()或Substring()

Declare @YourTable table (Name varchar(50))
Insert into @YourTable values
('Tom Howard'),
('Michael Black'),
('Wiliam Cruise'),
('Bet Moor')

Select Name
      ,first_name=PARSENAME(Replace(Name,' ','.'),2)
      ,last_name =PARSENAME(Replace(Name,' ','.'),1)
 From @YourTable

-- OR --

Select Name
      ,first_name=Substring(Name,1,charindex(' ',name)-1)
      ,last_name =Substring(Name,charindex(' ',name)+1,50)
 From @YourTable

返回

enter image description here

答案 1 :(得分:0)

您可以使用左右功能快速找到这些项目:

select Name, left(Name,charindex(' ',Name)-1) as first_name, right(Name,charindex(' ',Name)-1) as last_name from yourtable

只要在“名称”字段中有一个空格,这应该可以正常工作,如果您有多个空格,那么您将丢失这些空格之间的任何数据。