我正在用SQL server2005编写一个查询。这将在结果中返回重复的行。我可以用一个特定的列作为关键字来消除这种重复吗?
发布于 2008-09-23 08:45:00
可以使用DISTINCT关键字消除完整的重复行。如果有一些键列是重复的,而其余的列不是,则必须使用聚合函数和GROUP BY子句来向SQL Server解释您希望返回哪些数据。
发布于 2008-09-23 08:46:54
SELECT DISTINCT将消除重复行。
发布于 2008-09-23 12:39:46
正如在其他评论中所建议的那样,您可以使用 SELECT DISTINCT来消除重复项,目前它可能工作得足够好,但您可能是在自找麻烦。经常发生的情况是,如果没有SELECT DISTINCT就不能获得唯一的结果,那么您的数据库模型就已经被反规范化太多了,而且您的查询可能会因为检索然后消除大量重复项而陷入困境。(当然,规范化现有的数据库模式很少是微不足道的……)
如果没有关于模式和查询的更多信息,就不可能判断SELECT DISTINCT是否是一种可接受的变通办法,或者是否有更好的连接语句。
https://stackoverflow.com/questions/119896
复制相似问题