4

可能重复:
重复结果
面试 - 检测/删除重复条目

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

返回的数据可能重复。例如,我的查询可能类似于:

SELECT item FROM myTable WHERE something = 3

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

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

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

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

item
-----
2
1
4
5
9

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

怎么做?

4

4 回答 4

16
SELECT DISTINCT item FROM myTable WHERE something = 3
于 2012-08-03T22:35:42.090 回答
6

如前所述,distinct关键字从结果集中消除了重复的行(其中行在列中具有相同的值)。

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

如果我正在查看代码,select distinct或者group by在没有任何明显需要的情况下无偿使用,则会标记包含的查询,并且该查询会用细齿梳完成。

于 2012-08-03T22:55:17.083 回答
2

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

在此处查看 DISTINCT 参考

于 2012-08-03T22:38:34.687 回答
1

SELECT DISTINCT item FROM myTable WHERE something = 3

你只需要使用 distinct

于 2012-08-03T22:37:19.213 回答