2017-07-28 3 views
2
USE TEMPDB 
go 

IF OBJECT_ID(N'#TEST', N'U') IS NOT NULL 
    DROP TABLE dbo.#TEST 


CREATE TABLE #TEST 
(NAME VARCHAR(50), 
line int, 
RANKS INT) 
INSERT INTO #TEST 
(name, line,RANKS) 
VALUES 
('Tom',1, 1), --keep 
('Tom',2, 1),--keep 
('Toms',1, 0), --keep 
('Toms',2, 0),--keep 
('Dave',1, 0),--delete 
('Dave',2, 0),--keep 
('Dave',1, 1),--keep 
('TIm',1,1),--keep 
('TIm',1,0),--delete 
('Matt',1,0),--delete 
('Matt',1,1)--keep 
  • であるとグループ内の重複を特定し、その後、私は削除する必要がONDE「0」ランク下であれば落ちると同じ人同じ行が異なるランクの下に落ちている場合、ランク0の下のものは削除する必要があります。このよう

答えて

1

何かが動作するはずです:

delete t1 
    from #TEST t1 
where exists(select * 
       from #TEST t2 
       where t2.NAME = t1.NAME 
       and t2.line = t1.line 
       and t2.RANKS <> t1.RANKS) 
    and t1.RANKS = 0; 
+0

パーフェクト、それが働きました。ありがとう、トン。 – epistemophilic

関連する問題