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)
如前所述,该distinct关键字从结果集中消除重复的行(在行中列中的值相同)。
但是,对于针对适当设计的数据库进行的简单查询,结果集中存在重复的行,并且通过(select distinct或select ... group by恕我直言)消除重复行,通常是“代码异味”,表明连接条件不正确或不正确,或者缺少对表之间关系中基数的理解。
如果我正在检查代码,select distinct或者group by没有任何明显需要的免费软件,将对包含的查询进行标记,并且使用细齿梳将查询结束。