2012-08-03 86 views
3

可能重複:
Duplicate result
Interview - Detect/remove duplicate entries上的SQL查詢中刪除重複行

我有一個SQL查詢,它返回一個表,一列。

返回的數據可能會重複。例如,我的查詢可能是這樣的:

SELECT item FROM myTable WHERE something = 3 

和返回的數據可能是這樣的:

item 
----- 
2 
1 
4 
5 
1 
9 
5 

我的問題是,如何從我的查詢刪除重複的項目?

我的意思是,我想要得到這些結果:

item 
----- 
2 
1 
4 
5 
9 

請注意,我要更改或刪除表中的任何行我只是想刪除該查詢中的重複項

如何做到這一點?

回答

12
SELECT DISTINCT item FROM myTable WHERE something = 3 
1

SELECT DISTINCT item FROM myTable WHERE something = 3

您只需要使用不同的

2

您需要的DISTINCT關鍵字添加到您的查詢。
此關鍵字非常標準,並在所有主要數據庫上受支持。

See DISTINCT refs here

+1

標籤說'sql-server-2005' ... – LittleBobbyTables 2012-08-03 22:38:58

+1

數據庫是在標籤(sql server 2005) – amb 2012-08-03 22:39:11

+0

我正在使用SQL Server 2005,並告訴我在標籤:) – 2012-08-03 22:39:19

4

如上所述,distinct關鍵字消除重複的行—其中的行具有在從結果集中列—相同的值。

然而,對一個設計合理的數據庫中不平凡的查詢,重複行的結果存在設置—並通過select distinctselect ... group by消除它們是,恕我直言,最常見的是「代碼味道」,表示不恰當或不正確加入標準或缺乏對錶格之間關係中基數的理解。

如果我檢查代碼,select distinct或無償group by不存在將得到的標記包含查詢和查詢超過了用細齒梳任何明顯的需求。