create table tb(列名 varchar(20)) insert into tb values('04#02#日期') insert into tb values('03#123#时间') insert into tb values('06#1234#asdasd') goselect col1 = left(列名,charindex('#',列名)-1) , col2 = substring(列名, charindex('#',列名)+1, charindex('#',列名,charindex('#',列名)+1) - charindex('#',列名) - 1) from tb where charindex('#',列名) > 0 and charindex('#',列名,charindex('#',列名)+1) > 0drop table tb/* col1 col2 -------------------- -------------------- 04 02 03 123 06 1234(所影响的行数为 3 行) */
select col=left(col,charindex('#',col)-1), col2=substring(col,charindex('#',col)+1,charindex('#',col,charindex('#',col))-charindex('#',col)+1) from t
select substring('列名',1,charindex('#','列名')-1),substring() A, substring(substring('列名',charindex('#','列名')+1,len('列名')),1, charindex('#',substring('列名',charindex('#','列名')+1,len('列名')))-1)B from 表名
create table tb(列名 varchar(20)) insert into tb values('04#02#日期') insert into tb values('03#123#时间') insert into tb values('06#1234#asdasd') go--方法一: select col1 = left(列名,charindex('#',列名)-1) , col2 = substring(列名, charindex('#',列名)+1, charindex('#',列名,charindex('#',列名)+1) - charindex('#',列名) - 1) from tb where charindex('#',列名) > 0 and charindex('#',列名,charindex('#',列名)+1) > 0--方法二: select col1 = PARSENAME(replace(replace(列名,'#','.'),'#','.'),3), col2 = PARSENAME(replace(replace(列名,'#','.'),'#','.'),2) from tbdrop table tb/* col1 col2 -------------------- -------------------- 04 02 03 123 06 1234(所影响的行数为 3 行) */
declare @T table (col varchar(200)) insert into @T values('04#02#日期') insert into @T values('03#123#时间') insert into @T values('06#1234#asdasd') select col=left(col,charindex( '#',col)-1), col2=left(stuff(col,1,charindex('#',col),''),charindex('#',stuff(col,1,charindex('#',col),''))-1) from @t select col=left(col,charindex( '#',col)-1), col2=substring(col,charindex( '#',col)+1,charindex( '#',col,charindex( '#',col)+1)-charindex( '#',col)-1) from @t
substring(列名, charindex('#',列名)+1, charindex('#',列名,charindex('#',列名)+1) - charindex('#',列名) - 1)
from tb
insert into tb values('04#02#日期')
insert into tb values('03#123#时间')
insert into tb values('06#1234#asdasd')
goselect col1 = left(列名,charindex('#',列名)-1) ,
col2 = substring(列名, charindex('#',列名)+1, charindex('#',列名,charindex('#',列名)+1) - charindex('#',列名) - 1)
from tb
where charindex('#',列名) > 0 and charindex('#',列名,charindex('#',列名)+1) > 0drop table tb/*
col1 col2
-------------------- --------------------
04 02
03 123
06 1234(所影响的行数为 3 行)
*/
col=left(col,charindex('#',col)-1),
col2=substring(col,charindex('#',col)+1,charindex('#',col,charindex('#',col))-charindex('#',col)+1)
from
t
substring(substring('列名',charindex('#','列名')+1,len('列名')),1,
charindex('#',substring('列名',charindex('#','列名')+1,len('列名')))-1)B
from 表名
insert into tb values('04#02#日期')
insert into tb values('03#123#时间')
insert into tb values('06#1234#asdasd')
go--方法一:
select col1 = left(列名,charindex('#',列名)-1) ,
col2 = substring(列名, charindex('#',列名)+1, charindex('#',列名,charindex('#',列名)+1) - charindex('#',列名) - 1)
from tb
where charindex('#',列名) > 0 and charindex('#',列名,charindex('#',列名)+1) > 0--方法二:
select col1 = PARSENAME(replace(replace(列名,'#','.'),'#','.'),3),
col2 = PARSENAME(replace(replace(列名,'#','.'),'#','.'),2)
from tbdrop table tb/*
col1 col2
-------------------- --------------------
04 02
03 123
06 1234(所影响的行数为 3 行)
*/
insert into @T values('04#02#日期')
insert into @T values('03#123#时间')
insert into @T values('06#1234#asdasd')
select
col=left(col,charindex( '#',col)-1),
col2=left(stuff(col,1,charindex('#',col),''),charindex('#',stuff(col,1,charindex('#',col),''))-1)
from
@t
select
col=left(col,charindex( '#',col)-1),
col2=substring(col,charindex( '#',col)+1,charindex( '#',col,charindex( '#',col)+1)-charindex( '#',col)-1)
from
@t
列名
(2003)阿党字第00005号
(2004)阿第00058号
(2006)第00123号
(2006)sdfad第0012号
结果:
年度 编号
03 5
04 58
06 123
06 12