有a,b两个表
create table a
(
 bm varchar(5),
 mc varchar(5)
)
create table b
(
 bm varchar(5),
 mc varchar(5)
)
1.删除a表中与b表中数据完全一样的行(两个字段都得相等)。
2.删除a表中所有相同的数据(两个字段都相等),但是得保留一条该记录。
请高手指点。。可否不用游标解决这两个问题

解决方案 »

  1.   

    1
    DELETE a FROM a INNER JOIN B ON a.bm=b.bm AND a.mc=b.mc
    2
    SELECT bm,mc,identity(int) id into #t FROM a
    TRUNCATE TABLE a
    INSERT a SELECT bm,mc FROM #t GROUP BY bm,mc
    DROP TABLE #t未测试,可能有手误
      

  2.   

    --1.删除a表中与b表中数据完全一样的行(两个字段都得相等)。
    delete from a
    where exists
    (
    select 1 from b where a.bm=b.bm and a.mc=b.mc
    )--2.删除a表中所有相同的数据(两个字段都相等),但是得保留一条该记录。
    select distinct * into # from a
    truncate table a
    insert into a select * from #
    drop table #