拆分成不同的列 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
我的 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