拆分成不同的列 SQL 服务器

Split into different columns SQL Server

我的 table 列中有这样的数据:

cpc > cpc > organic
cpc > organic >cpc
mail > cpc > organic

如何使用“>”作为分隔符将该数据拆分到不同的列?

这是著名的问题。您可以通过 CLR 导入函数使用 Regex,但这里非常有用 script. Alter spliting you can use PIVOT/UNPIVOT 是您需要逐列数据。

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

也许你也可以这样做

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