比如:字段 id(int) Names(char)
记录: 1 中国移动
20 中国移动通信
33 中国移动通信集团
47 中国移动通信集团公司
有没有办法使这4条的Names都为表述最准确的既:字段 id(int) Names(char)
记录: 1 中国移动通信集团公司
20 中国移动通信集团公司
33 中国移动通信集团公司
47 中国移动通信集团公司
记录: 1 中国移动
20 中国移动通信
33 中国移动通信集团
47 中国移动通信集团公司
有没有办法使这4条的Names都为表述最准确的既:字段 id(int) Names(char)
记录: 1 中国移动通信集团公司
20 中国移动通信集团公司
33 中国移动通信集团公司
47 中国移动通信集团公司
drop table tb
go
create table tb(id int,names varchar(100))
go
insert tb select 1 ,'中国移动'
union all select 20 , '中国移动通信'
union all select 33 , '中国移动通信集团'
union all select 47, '中国移动通信集团公司'
union all select 50, '中国移动通信集团总办'goupdate a set names=(select top 1 names from tb where names like a.names + '%' order by len(names) desc,newid())
from tb a
go
select * from tb
go/*
1 中国移动通信集团公司
20 中国移动通信集团总办
33 中国移动通信集团公司
47 中国移动通信集团公司
50 中国移动通信集团总办*/