我的表格中的数据就像这样:
cpc > cpc > organic
cpc > organic >cpc
mail > cpc > organic
如何使用'>'将数据拆分到不同的列?作为分隔符?
答案 0 :(得分:2)
这是一个着名的问题。您可以通过CLR导入函数使用Regex,但这里非常有用script。改变分割你可以使用PIVOT/UNPIVOT,你需要完全按照列进行分割。
答案 1 :(得分:0)
SELECT
PARSENAME(REPLACE(String,'>','.'),1) AS 'col1' ,
PARSENAME(REPLACE(String,'>','.'),2) AS 'col2' ,
PARSENAME(REPLACE(String,'>','.'),3) AS 'col3'
FROM tbl
答案 2 :(得分: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