我的表中的列這樣如何刪除這些行
column1 column2
100 1
100 1
101 2
101 3
102 4
102 5
103 6
104 7
104 7
,我希望輸出這樣
column1 column2
101 2
101 3
102 4
102 5
103 6
我的表中的列這樣如何刪除這些行
column1 column2
100 1
100 1
101 2
101 3
102 4
102 5
103 6
104 7
104 7
,我希望輸出這樣
column1 column2
101 2
101 3
102 4
102 5
103 6
如果你只是想要一個查詢,而不重複返回行,你想:
SELECT DISTINCT column1, column2
FROM MyTable
如果實際上要刪除的行,然後按照@A哈米德的鏈接a previous SO answer on deleting duplicate rows
它不起作用。請仔細查看這個查詢,它不那麼容易 – user980191 2012-01-28 06:57:02
顯然,你只需要行其列2的值是您將只剩下你想要的行2和6
Delete from your_table
Where column2<2 or column2>6
現在之間
,你可以選擇現在都:Select column1, column2
From yourtable
或'從你的表中刪除 (1,7)' – jjj 2012-01-29 06:15:27
declare @T table
(
c1 int,
c2 int
)
insert into @T values
(100, 1),
(100, 1),
(101, 2),
(101, 3),
(102, 4),
(102, 5),
(103, 6),
(104, 7),
(104, 7)
;with C as
(
select count(*) over(partition by C1, C2) as D
from @T
)
delete from C
where D > 1
的列在哪裏我不同意你的命名約定:'C'會是一個更自然的選擇'COUNT(*)',而不是'D',並且爲了避免可能的混淆,'C' CTE可以被命名爲'E'!只是開玩笑:)這是一個(其他)實際使用CTE的好例子! – 2012-01-28 16:15:55
@AndriyM - 好吧,我會在名稱上工作:)。我猜在這種情況下'D'可能是'DuplicateCount'的縮寫。 'C'實際上是一個很好的名字,當它是表'T' :)的派生表時。 – 2012-01-28 16:39:51
你是如何得到低於產量?你跟隨什麼算法?還有什麼你嘗試過,你在哪裏面臨問題? – 2012-01-28 06:40:22
可能重複的[如何刪除完全重複的行](http://stackoverflow.com/q/3345268/953140) – Ahamed 2012-01-28 06:42:33
這是一個sql server 2008的問題 – user980191 2012-01-28 06:42:52