2016-09-21 60 views
1

我有一個問題,將單列值分成多個列值。如何從一列中分離和顯示數據?

在此:

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

我需要的輸出是這樣的:

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

我必須展示從一列(名稱)數據(姓氏)。 謝謝

+0

到目前爲止您有什麼嘗試過嗎? – BJones

+0

非常感謝。有用。 – RInfo

+0

@ ReInfo_91請顯示哪些答案有效,以便社區知道您的工作是什麼。 –

回答

0

根據您的版本,你可以使用PARSENAME()或子()

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

0

您可以使用左,右功能來找到這些物品很快:

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

只要您在名稱字段中有一個空格,這應該可以正常工作,如果您有多個空格,則會丟失空格之間的任何數據。

相關問題