关于一个update的实现...(也许有难度)
同一个表中,part号为4位的有address,前4位一样而多了一个后缀的记录又没有address,现需要用有address的记录的address值填写与其前4位一样的记录的address值
谢谢!
(最好用一条语句)
问题点数:50、回复次数:6Top
1 楼pengdali()回复于 2003-11-02 15:06:36 得分 40
update 表 set address=(select tem.address from 表 tem where len(tem.part)=4 and 表.part like tem.part+'%') where len(part)>4Top
2 楼xdd1125(成长快乐)回复于 2003-11-02 15:53:29 得分 0
谢谢大力的帮助!
我测试了一下,可是为什么update之后,part大于4位的address竟变成了nullTop
3 楼pengdali()回复于 2003-11-02 15:57:14 得分 0
create table 你的表(address varchar(10),part varchar(10))
insert 你的表 values('dsa','1234')
insert 你的表 values('rtyrty','4321')
insert 你的表 values(null,'1234asdfs')
insert 你的表 values(null,'4321asdf')
update 你的表 set address=(select tem.address from 你的表 tem where len(tem.part)=4 and 你的表.part like tem.part+'%') where len(part)>4
select * from 你的表
go
drop table 你的表
/*
address part
---------- ----------
dsa 1234
rtyrty 4321
dsa 1234asdfs
rtyrty 4321asdf
(所影响的行数为 4 行)
*/Top
4 楼gmlxf(烛光)回复于 2003-11-02 23:13:41 得分 10
update 你的表 set address=(select top 1 tem.address from 你的表 tem where len(tem.part)=4 and 你的表.part like tem.part+'%') where len(part)>4Top
5 楼zjcxc(邹建)回复于 2003-11-03 08:33:13 得分 0
楼主最好举例说明.免得大家搞错.Top
6 楼txlicenhe(马可)回复于 2003-11-03 08:48:30 得分 0
update 你的表 a
set address=(select address from 你的表 where len(part)=4
and charindex(a.part,part) > 0) where len(part)>4Top




