示例表(省的code为两位,市的code为四位,其中市的code前两位是省的code):
code name shortname
01 浙江省 zj 0102 温州市 wz 02 福建省 fj 0201 泉州市 qz 现在要把所有的市的简写和所属省的简写一样 结果
code name shortname
|
|||
Code
create table RegionName
(
code char(4) not null primary key,
[name] nvarchar(8) not null,
shortname varchar(8) not null,
)
Go
insert RegionName values('01', '浙江省', 'zj')
insert RegionName values('0101', '杭州市', 'hz')
insert RegionName values('0102', '温州市', 'wz')
insert RegionName values('02', '福建省', 'fj')
insert RegionName values('0201', '泉州市', 'qz')
Go
select * from RegionName
Go
update RegionName
set RegionName.shortname = s.shortname
from RegionName t, (select * from RegionName where len(code) = 2) s
where s.code = substring(t.code, 1, 2) and len(t.code) > 2
Go
select * from RegionName
Go
以上代码在 SQL SERVER 2005 下测试通过
update table_name ta
set shortname = (
select shortname
from table_name
where code = substring(ta.code, 0, 2)
) where len(code) > 2
不知道行不行,手头没有能测试的数据库软件
update table1
set shortname= a.shortname from (select * from table1 where len(code)<3) a
inner join table1 p on left(p.code,2)=a.code
这个..没测试,但是 肯定就得用这个方法,楼主可以测试一下
哈哈.[补充]已经测试过,,没有问题..等着收分。