【问题标题】:How to delete duplicate rows from table from DbVisualiser如何从 DbVisualizer 中删除表中的重复行
【发布时间】:2013-01-30 07:09:50
【问题描述】:

我有一个名为 ORG_MAP 的表,它包含 200 条记录,我执行了一个查询以将这 200 条记录复制到另一个名为 ORG_MAP_1 的表(ORG_MAP 的重复表),但发生的事情是相同的 200 条记录被插入到同一个ORG_MAP 表中。

现在我想删除那些重复的记录。我不知道该怎么做。

请帮助我。我用的是db Visualizer8.0.11版本。

我使用的查询是:

INSERT INTO METRICS.ORG_MAP (REPORT_END_DATE,ENTITY,ENTITY_TYPE,RELATIONSHIP,TARGET,TARGET_TYPE)
SELECT REPORT_END_DATE,ENTITY,ENTITY_TYPE,RELATIONSHIP,TARGET,TARGET_TYPE
FROM METRICS.ORG_MAP

【问题讨论】:

    标签: sql dbvisualizer


    【解决方案1】:

    我认为您的问题没有任何直接的解决方案 但我做了一些工作可能对你有用....

    create table #table(id int,c varchar(2))
    insert into #table values('1','a')
    insert into #table values('1','a')
    insert into #table values('2','b')
    insert into #table values('2','b')
    insert into #table values('3','c')
    insert into #table values('3','c')
    insert into #table values('4','d')
    insert into #table values('5','d')
    
    declare @table table(uid int,id int ,c varchar(2));
    
    
    with tbl as (
        select ROW_NUMBER() OVER(ORDER BY id DESC) AS uid ,id,c from #table
    ) 
    
    insert into @table select * from tbl
    
    declare @tmpid int,@tmpuid int,@cnt int
    declare tmpc cursor 
    for select uid,id from @table;
    
    open tmpc
    
    fetch next from tmpc 
    into @tmpuid,@tmpid
    
    while @@FETCH_STATUS = 0
    BEGIN
    set @cnt = (select COUNT(id) from @table where id = @tmpid)
    IF (@cnt > 1)
    BEGIN   
        delete from @table where uid = @tmpuid      
    END
    
    fetch next from tmpc 
    into @tmpuid,@tmpid
    
    END 
    
    CLOSE tmpc; 
    DEALLOCATE tmpc;
    
    select * from @table
    
    drop table #table
    

    【讨论】:

      猜你喜欢
      • 2011-08-11
      • 2013-02-13
      • 2012-10-21
      • 1970-01-01
      • 2011-03-17
      • 2010-11-05
      • 1970-01-01
      • 2021-06-13
      相关资源
      最近更新 更多