2 回答
TA贡献1829条经验 获得超7个赞
把条件稍微改一下 你应该就理解了
delete t from tb_Table twhere exists ( select 1 from tb_Table t2 where t2.ConID = t.ConID and len(t2.GeoNo) > len(t.GeoNo))
就是说 对于t中每条数据, 只要 t2 中 有任意一条数据 与 t当前数据 有相同的 ConID 并且 GeoNo 比 t当前的这条数据的 GeoNo 更长, 那么就将t 中这条数据删除 。
比如 t 中第一条数据 ('01','北京','1000' ) 在t2 中有相同的 ConID 的有 ('01','北京','1000') , ('0101','海淀区','1000'), ('010101','上地','1000') 有两条以上的数据都比 t的长, 于是 t中的第一条数据会被删除。
TA贡献2016条经验 获得超9个赞
思路?大哥你几年级的
看条件where ConID=t.ConID andlen(GeoNo)>len(t.GeoNo)
把
Insert into tb_Table (GeoNo,Title,ConID) values ('01','北京','1000')
Insert into tb_Table (GeoNo,Title,ConID) values ('0101','海淀区','1000')
Insert into tb_Table (GeoNo,Title,ConID) values ('010101','上地','1000')
弄成
Insert into tb_Table (GeoNo,Title,ConID) values ('010101','上地','1000')
这3条的ConID相同,留下GeoNo长度最大的
- 2 回答
- 0 关注
- 562 浏览
添加回答
举报