2016-09-21 15 views
1

単一の列の値を複数の列の値に分割する際に問題があります。このオン1つの列からデータを分離して表示する方法は?

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

私は1つの列(名前)からのデータ(LAST_NAME)を表示する必要があります。

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 

複数のスペースがある場合は、名前フィールドにスペースが1つあれば正常に動作するはずです。スペースの間にあるデータはすべて失われます。

関連する問題