删除SQL查询上的重复行

Mah*_*asi 4 sql sql-server sql-server-2005

可能重复:
重复结果
采访 - 检测/删除重复条目

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

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

SELECT item FROM myTable WHERE something = 3
Run Code Online (Sandbox Code Playgroud)

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

item
-----
2
1
4
5
1
9
5
Run Code Online (Sandbox Code Playgroud)

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

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

item
-----
2
1
4
5
9
Run Code Online (Sandbox Code Playgroud)

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

怎么做?

DJ *_*mby 15

SELECT DISTINCT item FROM myTable WHERE something = 3
Run Code Online (Sandbox Code Playgroud)


Nic*_*rey 5

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

但是,对于针对适当设计的数据库进行的简单查询,结果集中存在重复的行,并且通过(select distinctselect ... group by恕我直言)消除重复行,通常是“代码异味”,表明连接条件不正确或不正确,或者缺少对表之间关系中基数的理解。

如果我正在检查代码,select distinct或者group by没有任何明显需要的免费软件,将对包含的查询进行标记,并且使用细齿梳将查询结束。