删除SQL查询上的重复行

时间:2012-08-03 22:34:22

标签: sql sql-server sql-server-2005

  

可能重复:
  Duplicate result
  Interview - Detect/remove duplicate entries

我有一个SQL查询,它返回一个包含一列的表。

返回的数据可能重复。例如,我的查询可能是这样的:

SELECT item FROM myTable WHERE something = 3

并且返回的数据可能是这样的:

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

我的问题是,如何从查询中删除重复的项目?

我的意思是,我希望得到这些结果:

item
-----
2
1
4
5
9

请注意,我想要更改或删除表格中的任何行我只想删除该查询中的重复

怎么做?

4 个答案:

答案 0 :(得分:14)

SELECT DISTINCT item FROM myTable WHERE something = 3

答案 1 :(得分:4)

如上所述,distinct关键字消除了重复行 - 其中行在列中具有相同的值 - 来自结果集。

但是,对于正确设计的数据库的非平凡查询,结果集中存在重复行 - 以及通过select distinctselect ... group by消除它们,恕我直言,通常是“代码气味“表示不正确或不正确的连接标准,或者缺乏对表格之间关系中存在的基数的理解。

如果我正在审核代码,select distinct或免费的group by没有任何明显的需要,那么将会标记包含的查询,并使用精细的齿梳进行查询。

答案 2 :(得分:2)

您需要在查询中添加 DISTINCT 关键字 此关键字非常标准,并且在所有主要数据库上都受支持。

See DISTINCT refs here

答案 3 :(得分:1)

SELECT DISTINCT item FROM myTable WHERE something = 3

你只需要使用不同的