发布网友 发布时间:2022-04-07 18:58
共2个回答
懂视网 时间:2022-04-07 23:20
在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。关键词 distinct用于返回唯一不同的值。
表A:
select distinct name from A
执行后结果如下:
select distinct name, id from A
执行后结果如下:
实际上是根据“name+id”来去重,distinct同时作用在了name和id上,这种方式Access和SQL Server同时支持。
select count(distinct name) from A; --表中name去重后的数目, SQL Server支持,而Access不支持 select count(distinct name, id) from A; --SQL Server和Access都不支持
select id, distinct name from A; --会提示错误,因为distinct必须放在开头
distinct语句中select显示的字段只能是distinct指定的字段,其他字段是不可能出现的。例如,假如表A有“备注”列,如果想获取distinc name,以及对应的“备注”字段,想直接通过distinct是不可能实现的。
SQL中distinct的用法
标签:
热心网友 时间:2022-04-07 20:28
distinct用来查询不重复记录的条数,即distinct来返回不重复字段的条数(count(distinct id)),其原因是distinct只能返回他的目标字段,而无法返回其他字段。
对单一一个字段使用distinct去除重复值时,会过滤掉多余重复相同的值,只返回唯一的值。
对多个字段同时使用distinct去除重复值时,distinct字段必须放在第一个字段前面,不能放在其他字段的后面。既distinct必须放在select后面,第一个字段的前面。同时,使用distinct多个字段去除重复数据时,必须满足各行中各列所对应的值都相同才能去除重复值,如果有其中一列的值不相同,那就表示这些数据不是重复的数据,不会过滤掉。
用法注意
1、distinct【查询字段】,必须放在要查询字段的开头,即放在第一个参数。
2、只能在SELECT语句中使用,不能在INSERT,DELETE,UPDATE中使用。
3、DISTINCT表示对后面的所有参数的拼接取不重复的记录,即查出的参数拼接每行记录都是唯一的。
4、不能与all同时使用,默认情况下,查询时返回的就是所有的结果。