首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

请教这个如何实现?不好弄啊

2012-03-23 
请问这个怎么实现?不好弄啊。有这样的数据col1,2,35,8,96,5,4在sqlserver中怎么样把他转换成Col1col2col312

请问这个怎么实现?不好弄啊。
有这样的数据
  col
1,2,3
5,8,9
6,5,4

在sqlserver中怎么样把他转换成
Col1         col2         col3
    1             2                 3
    5             8                 9
    6             5                 4

有什么好办法没有?最好不要用游标,临时表。   我要写在一个函数中


[解决办法]
select
Col1=left(col,charindex( ', ',col)-1),
Col2=substring(col,charindex( ', ',col)+1,charindex( ', ',col,charindex( ', ',col)+1)-charindex( ', ',col)-1),
Col3=reverse(left(reverse(col),charindex( ', ',reverse(col))-1))
from 表
[解决办法]
create table #t
(col varchar(100))
insert into #t
select '1,2,3 ' union all
select '5,8,9 ' union all
select '6,5,4 '


select col1=substring(col,charindex( ', ',col+ ', ',1)-1,1),
col2=substring(col,charindex( ', ',col+ ', ',3)-1,1),
col3=substring(col,charindex( ', ',col+ ', ',5)-1,1)

from #t

col1 col2 col3
---- ---- ----
1 2 3
5 8 9
6 5 4

(3 row(s) affected)
[解决办法]
如果这样,不要用SQL语句.
将数据导出到文本.然后再利用SQL的DTS导入,以逗号分隔就行了.

热点排行