2015-04-25 72 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