刪除重複列

假設表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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章