删除重复列

假设表t1中有c1、c2、c3列,表结构如下:
  Create Table t1
   (c1 int null,
    c2 int null,
    c3 char(10) null)

我们要删除其中c1和c2多余的重复行(只保留一行)的解决方法:
在表中新增加一个标识列,利用它来删除重复记录,代码如下所示
  Alter Table t1
  ADD key_col INT NOT NULL IDENTITY
  Delete From t1
  where  exists(select * 
                         from t1 as t2
                         where t2.c1=t1.c1 and t2.c2=t1.c2
                         and
                         t2.key_col>t1.key_col)

 Alter Table t1
 drop column key_col

 

 

例子:

  Alter Table L1Record ADD key_col INT NOT NULL IDENTITY
  Delete From L1Record
  where  exists(select *
                         from L1Record as t2
                         where t2.KNB=L1Record.KNB
   and t2.[Sequence]=L1Record.[Sequence]
   and t2.SVWTime=L1Record.SVWTime
   and t2.ReceiveTime=L1Record.ReceiveTime
                        and
                         t2.key_col>L1Record.key_col)

 Alter Table L1Record
 drop column key_col

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值