我有一个带有三个varchar列的SQL Server 2008数据库表 - Col1, Col2, Col3
。 Col1
中包含数据,其间只有一个空格,Col2
和Col3
为空。
我需要编写一个查询来从Col1
中选择数据,使用空格作为分隔符来分解每个值,并将空间任意一侧的数据插入Col2
和{{ 1}}分别。
我不太清楚如何继续。这可以在SQL中完成,还是应该创建一个小程序来为我做这项工作?如果可以通过SQL完成,我会欣赏正确方向的指针。
感谢。
答案 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