SQL DISTINCT
1. sql disctinct语句功能概述
DISTINCT语句是SQL中用于检索唯一不同值的关键字。它用于从表中检索唯一的值,即消除重复的行。当你想要从数据库表中选择不同的值时,可以使用DISTINCT关键字来过滤重复的数据,并只返回唯一值
表A:
表B:
2. 基本语法
select distinct 列名称 from 表名称
注意:
distinct必须放在开头,否则会提示错误
distinct语句中select显示的字段只能是distinct指定的字段,其他字段是不可能出现的。
3. 使用讲解
3.1 作用于单列
select distinct name from A
执行结果:
3.2 作用于多列
SELECT DISTINCT
不仅可以用于单个列,还可以用于多个列。对于多列,DISTINCT
关键字将根据指定的多个列的组合来过滤结果集,确保返回的记录是唯一的。该关键字将只返回每组值的一个副本,而不是每个单独的列值的唯一副本。这意味着,在多列的情况下,只有当多列的组合在结果集中是唯一的时候,才会返回该记录。
示例:
select distinct name, id from A
执行结果
select distinct xing, ming from B
执行结果
返回的结果为两行,这说明distinct并非是对xing和ming两列“字符串拼接”后再去重的,而是分别作用于了xing和ming列。
4. 搭配count统计
select count(distinct name) from A; --表中name去重后的数目, SQL Server支持,而Access不支持
count是不能统计多个字段的,下面的SQL在SQL Server和Access中都无法运行。
select count(distinct name, id) from A;
若想使用,请使用嵌套查询,如下:
select count(*) from (select distinct xing, name from B) AS M;