sqlserver中distinct的用法(不重复的记录)

说白了,DISTINCT就是用来过滤掉SQL Server中唯一的记录的。
它实际上非常简单,就像您在一堆牌中寻找不重复的花色一样。
我们先来说说最重要的事情。
例如,当您看到表中存在许多重复记录时,“Employees”表中有很多员工,但部门重复,您可以使用 DISTINCT 只获取不同的部门列表,如下所示: SELECT DISTINCT Department FROMEmployees;。

还有一点,DISTINCT的运行原理有点像完全打乱查询结果。
它按顺序对所有选定的记录进行排序,然后跳过连续的重复记录并仅保留第一次出现的记录。
有一个非常重要的细节。
这种排序和重复数据删除过程可能会让您的查询速度感觉有点慢,尤其是当您正在处理的数据量特别大时。

我最初以为 DISTINCT 会根据表中的原始顺序过滤重复项,但后来我发现这是错误的。
已按查询结果排序。
等等,还有一件事,使用 DISTINCT 时要注意性能问题,因为它需要额外的计算资源来排序和删除重复项。

最后,再次强调,当使用 DISTINCT 时,这个函数非常强大,但不要过度依赖它,因为它会使查询变得复杂。
有时一个简单的 WHERE 子句就可以解决问题。
我认为在使用DISTINCT之前你应该考虑一下你是否真的需要它。

SQL 查询中如何优雅地消除重复字段?

DISTINCT、显式字段和 USING 都可以用来删除重复项。

DISTINCT 过滤整行中的重复项,效率低下。

仅选择最佳性能所需的显式字段。

USING登录时自动去重,代码最简单。

USING 仅支持等值连接,SQL Server 不支持。

使用 USING 将列添加到多个表。

USING 也可以与 WHERE 一起使用。

自然链接不可靠,请勿使用它们。

优先考虑USING,复杂字段使用显式字段。

DISTINCT 应​​谨慎、缓慢地使用。