--上面写错了,[在patindex中是特殊字符,改为:update 表 set cc=left(stuff(AA,1,patindex('%[[]%]%',AA),''),charindex(']',stuff(AA,1,patindex('%[[]%]%',AA),'') )-1) from 表 where patindex('%[[]%]%',AA)>0
drop table #t --输入数据 create table #t ( a varchar(10),b varchar(20),c varchar(10)) insert into #t select 'AAE' ,'Annaba [El Mellah]', NULL union all select 'AAR' ,'Aarhus [Tirstrup]', NULL union all select 'ABJ' ,'Abidjan [Felix]', NULL --原来数据 select * from #t --更新 update #t set b = left (b,charIndex('[',b)-1),c = substring(b,charIndex('[',b)+1,charIndex(']',b)-charIndex('[',b)-1) --结果 select * from #t
--写错字段了 update 表 set BB=left(BB,patindex('%[[]%]%',BB)-1) ,cc=left(stuff(BB,1,patindex('%[[]%]%',BB),''),charindex(']',stuff(BB,1,patindex('%[[]%]%',BB),'') )-1) from 表 where patindex('%[[]%]%',BB)>0
--测试数据 create table #t ( aa varchar(10),bb varchar(20),cc varchar(10)) insert into #t select 'AAE' ,'Annaba [El Mellah]', NULL union all select 'AAR' ,'Aarhus [Tirstrup]', NULL union all select 'ABJ' ,'Abidjan [Felix]', NULL --更新 update #t set BB=left(BB,patindex('%[[]%]%',BB)-1) ,cc=left(stuff(BB,1,patindex('%[[]%]%',BB),''),charindex(']',stuff(BB,1,patindex('%[[]%]%',BB),'') )-1) from #t where patindex('%[[]%]%',BB)>0--结果 select * from #t--删除测试 drop table #t/*--测试结果aa bb cc ---------- -------------------- ---------- AAE Annaba El Mellah AAR Aarhus Tirstrup ABJ Abidjan Felix(所影响的行数为 3 行) --*/
)-1)
from 表
where patindex('%[[]%]%',AA)>0
drop table #t
--输入数据
create table #t ( a varchar(10),b varchar(20),c varchar(10))
insert into #t select 'AAE' ,'Annaba [El Mellah]', NULL union all
select 'AAR' ,'Aarhus [Tirstrup]', NULL union all
select 'ABJ' ,'Abidjan [Felix]', NULL
--原来数据
select * from #t
--更新
update #t set b = left (b,charIndex('[',b)-1),c = substring(b,charIndex('[',b)+1,charIndex(']',b)-charIndex('[',b)-1)
--结果
select * from #t
update 表 set BB=left(BB,patindex('%[[]%]%',BB)-1)
,cc=left(stuff(BB,1,patindex('%[[]%]%',BB),''),charindex(']',stuff(BB,1,patindex('%[[]%]%',BB),'')
)-1)
from 表
where patindex('%[[]%]%',BB)>0
create table #t ( aa varchar(10),bb varchar(20),cc varchar(10))
insert into #t select 'AAE' ,'Annaba [El Mellah]', NULL union all
select 'AAR' ,'Aarhus [Tirstrup]', NULL union all
select 'ABJ' ,'Abidjan [Felix]', NULL --更新
update #t set BB=left(BB,patindex('%[[]%]%',BB)-1)
,cc=left(stuff(BB,1,patindex('%[[]%]%',BB),''),charindex(']',stuff(BB,1,patindex('%[[]%]%',BB),'')
)-1)
from #t
where patindex('%[[]%]%',BB)>0--结果
select * from #t--删除测试
drop table #t/*--测试结果aa bb cc
---------- -------------------- ----------
AAE Annaba El Mellah
AAR Aarhus Tirstrup
ABJ Abidjan Felix(所影响的行数为 3 行)
--*/