SQL Server:选择值,在分隔符上拆分,然后更新两列

时间:2011-08-19 17:35:27

标签: sql sql-server

我有一个带有三个varchar列的SQL Server 2008数据库表 - Col1, Col2, Col3Col1中包含数据,其间只有一个空格,Col2Col3为空。

我需要编写一个查询来从Col1中选择数据,使用空格作为分隔符来分解每个值,并将空间任意一侧的数据插入Col2和{{ 1}}分别。

我不太清楚如何继续。这可以在SQL中完成,还是应该创建一个小程序来为我做这项工作?如果可以通过SQL完成,我会欣赏正确方向的指针。

感谢。

2 个答案:

答案 0 :(得分:8)

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

答案 1 :(得分: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