日期:2014-05-18 浏览次数:20609 次
create table tb(SSH nvarchar(20),FLH nvarchar(20),SCH nvarchar(20),FCH nvarchar(20)) insert into tb(SSH) select 'D668*5*上*' insert into tb(SSH) select 'D668*5*下*' insert into tb(SSH) select 'G*59*第一辑.下册*' insert into tb(SSH) select 'G*59*第一辑.上册*' insert into tb(SSH) select 'G*59*第三辑.上册*' go update tb set FLH=LEFT(ssh,charindex('*',ssh)-1), SCH=SUBSTRING(SSH,charindex('*',ssh)+1,charindex('*',ssh,charindex('*',ssh)+1)-charindex('*',ssh)-1), FCH=SUBSTRING(ssh,charindex('*',ssh,charindex('*',ssh)+1)+1,LEN(ssh)-charindex('*',ssh,charindex('*',ssh)+1)-1) select * from tb /* SSH FLH SCH FCH -------------------- -------------------- -------------------- -------------------- D668*5*上* D668 5 上 D668*5*下* D668 5 下 G*59*第一辑.下册* G 59 第一辑.下册 G*59*第一辑.上册* G 59 第一辑.上册 G*59*第三辑.上册* G 59 第三辑.上册 (5 行受影响) */ go drop table tb
------解决方案--------------------
教好了,请结帖.
------解决方案--------------------
charindex 和 substring的应用
------解决方案--------------------
create table tb(SSH nvarchar(20),FLH nvarchar(20),SCH nvarchar(20),FCH nvarchar(20)) insert into tb(SSH) select 'D668*5*上*' insert into tb(SSH) select 'D668*5*下*' insert into tb(SSH) select 'G*59*第一辑.下册*' insert into tb(SSH) select 'G*59*第一辑.上册*' insert into tb(SSH) select 'G*59*第三辑.上册*' go update tb set flh = replace(parsename(replace(replace(left(SSH,len(ssh)-1), '.' , '#'),'*','.'),3),'#','.'), SCH = replace(parsename(replace(replace(left(SSH,len(ssh)-1), '.' , '#'),'*','.'),2),'#','.'), fCH = replace(parsename(replace(replace(left(SSH,len(ssh)-1), '.' , '#'),'*','.'),1),'#','.') select * from tb drop table tb /* SSH FLH SCH FCH -------------------- -------------------- -------------------- -------------------- D668*5*上* D668 5 上 D668*5*下* D668 5 下 G*59*第一辑.下册* G 59 第一辑.下册 G*59*第一辑.上册* G 59 第一辑.上册 G*59*第三辑.上册* G 59 第三辑.上册 (所影响的行数为 5 行) */