2011-08-19 109 views
3

我有一個SQL Server 2008數據庫表和三個varchar列 - Col1, Col2, Col3Col1中有一個空格,Col2Col3爲空。SQL Server:選擇值,拆分分隔符,然後更新兩列

我需要寫一個查詢以從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