2011-08-19 9 views
3

3つのvarchar列を持つSQL Server 2008データベーステーブルがあります。Col1, Col2, Col3Col1には、その間に1つのスペースを持つデータがあり、Col2Col3は空です。SQL Server:値を選択し、区切り文字を分割して2つの列を更新します。

Iは、それぞれ、Col1からデータを選択するためのクエリを作成区切り文字としてスペースを使用して、各値を分割し、Col2Col3に空間のいずれかの側にデータを挿入する必要があります。

私はどのように進むべきかわかりません。 SQLでこれを行うことはできますか、私の仕事をするための小さなプログラムを作成すべきですか?これをSQLで実現できるのであれば、私は正しい方向へのポインタに感謝します。

ありがとうございました。あなたが唯一のスペースがある保証できる場合

答えて

8
UPDATE table SET 
    Col2 = SUBSTRING(Col1, 1, CHARINDEX(' ', Col1)-1), 
    Col3 = SUBSTRING(Col1, CHARINDEX(' ', Col1)+1, 8000) 
WHERE Col1 LIKE '% %'; 
3

:アップデートで

create table #temp (col1 varchar(50),col2 varchar(50), col3 varchar(50)) 

insert into #temp (col1) 
select 'test 1' 
union all 
select 'test 2' 
union all 
select 'test 3' 

update #temp 
set col2 = left(col1, charindex (' ', col1)), 
col3 = substring(col1,charindex (' ', col1)+1, len(col1)) 
from #temp 
+0

は、コンマはCOL3 –

+0

、col3という=ストリング(COL1、CHARINDEX(」」、COL1)+ 1の前に必要とされます、len(col1)) –

+0

@bardev、あなたは正しい – HLGEM

関連する問題