日期:2014-05-16 浏览次数:20642 次
--> 测试数据:[a]
if object_id('[a]') is not null drop table [a]
go
create table [a]([ID] int,科目名称 varchar(50))
insert [a]
select 1,'语文/数学/英语' union all
select 2,'语文' union all
select 3,'数学/语文'
select
id,
SUBSTRING([科目名称],number,CHARINDEX('/',[科目名称]+'/',number)-number) as [科目名称]
from
a a,master..spt_values
where
number >=1 and number<=len([科目名称])
and [type]='p'
and substring('/'+[科目名称],number,1)='/'
/*
id 科目名称
----------- --------------------------------------------------
1 语文
1 数学
1 英语
2 语文
3 数学
3 语文
(6 行受影响)
*/
--drop table tb
create table tb(id int, 科目名称 varchar(30))
insert into tb
select 1 ,'语文/数学/英语' union all
select 2 ,'语文' union all
select 3 ,'数学/语文'
go
select id,
SUBSTRING(t.科目名称, number ,CHARINDEX('/',t.科目名称+'/',number)-number) 科目名称
from tb t,master..spt_values s
where s.number >=1
and s.type = 'P'
and SUBSTRING('/'+t.科目名称,s.number,1) = '/'
/*
id 科目名称
1 语文
1 数学
1 英语
2 语文
3 数学
3 语文
*/
--drop table tb
create table tb(id int, 科目名称 varchar(30),得分 varchar(20))
insert into tb
select 1 ,'语文/数学/英语','80/85/90' union all
select 2 ,'语文',' 70' union all
select 3 ,'数学/语文','99/78' union all
select 4 &nb