ITPub博客

首页 > IT职业 > > sqlserver删除数据冗余,高手请解释下!thank you

sqlserver删除数据冗余,高手请解释下!thank you

作者:duanhao 时间:2019-04-18 16:41:12 0 删除 编辑

数据表:
CREATE TABLE tb_Table
(
ID int IDENTITY(1,1) NOT NULL,
GeoNO varchar(50) NOT NULL,
Title varchar(100) NULL,
ConID varchar(50) NULL
)

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 ('01','北京','1001')
Insert into tb_Table (GeoNo,Title,ConID) values ('0102','朝阳区','1001')
Insert into tb_Table (GeoNo,Title,ConID) values ('010201','北辰','1001')
我想把上述数据入库后,再从表里删除数据,保留的数据是:
'010101','上地','1000'
'010201','北辰','1001'
'010301','回龙观','1002'
其他的数据则删除,即保证ConID是唯一的,而且GeoNo的值是最大。如何用SQL来实现?

上面是别人提问的,有个人的回答是这样的

delete t from  tb_Table t 
whereexists( select1from  tb_Table where ConID=t.ConID andlen(GeoNo)>len(t.GeoNo))

我看了,但是我不明白,这句sql怎么会执行出那样的结果的,各位谁指导下这句sql的执行思路?谢谢


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/1343/viewspace-3168211/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-09-06

  • 博文量
    739
  • 访问量
    25556