2015-04-25 104 views
0

我在我的表就是这样的一列有数据吗?拆分成不同的列的SQL Server

+2

http://stackoverflow.com/questions/10581772/how-to-split-a-comma-separated-value-to-columns –

+0

因此,当我在链接中使用该脚本时 - 如何从某个列创建分割函数?它不工作时,我尝试从fn_CSVToTable选择*(从表中选择列) – HalfPintBoy

回答

2

这是着名的问题。你可以使用正则表达式通过CLR导入函数,但这里非常有用script。改变你可以使用PIVOT/UNPIVOT你是否需要完全逐列数据。

0
SELECT 
    PARSENAME(REPLACE(String,'>','.'),1) AS 'col1' , 
    PARSENAME(REPLACE(String,'>','.'),2) AS 'col2' , 
    PARSENAME(REPLACE(String,'>','.'),3) AS 'col3' 
FROM tbl 
0

可能是你能做到这样也

declare @t table (name varchar(30)) 
insert into @t (name)values ('cpc > cpc1 > organic'),('cpc > organic1 >cpc') 
select 
SUBSTRING(name,0,CHARINDEX('>',name))As Col1, 
SUBSTRING(name, charindex('>', name)+1, len(name) - CHARINDEX('>', reverse(name)) - charindex('>', name))As Col2, 
REVERSE(SUBSTRING(reverse(name),0,CHARINDEX('>',reverse(name))))As Col3 
from @t