您好,欢迎来到尔游网。
搜索
您的当前位置:首页SQL中distinct的用法(四种示例分析)

SQL中distinct的用法(四种示例分析)

来源:尔游网
SQL中distinct的⽤法(四种⽰例分析)

在使⽤mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供有distinct这个关键字来过滤掉多余的重复记录只保留⼀条,但往往只 ⽤它来返回不重复记录的条数,⽽不是⽤它来返回不重记录的所有值。其原因是distinct只能返回它的⽬标字段,⽽⽆法返回其它字段,这个问题让我困扰很久,⽤distinct不能解决的话,我只有⽤⼆重循环查询来解决,⽽这样对于⼀个数据量⾮常⼤的站来说,⽆疑是会直接影响到效率的,所以浪费了我⼤量时间。

在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。关键词 distinct⽤于返回唯⼀不同的值。表A:

⽰例1

复制代码 代码如下:select distinct name from A执⾏后结果如下:

⽰例2

复制代码 代码如下:

select distinct name, id from A执⾏后结果如下:

实际上是根据“name+id”来去重,distinct同时作⽤在了name和id上,这种⽅式Access和SQL Server同时⽀持。⽰例3:统计复制代码 代码如下:

select count(distinct name) from A; --表中name去重后的数⽬, SQL Server⽀持,⽽Access不⽀持select count(distinct name, id) from A; --SQL Server和Access都不⽀持⽰例4

复制代码 代码如下:

select id, distinct name from A; --会提⽰错误,因为distinct必须放在开头

其他

distinct语句中select显⽰的字段只能是distinct指定的字段,其他字段是不可能出现的。例如,假如表A有“备注”列,如果想获取distinc name,以及对应的“备注”字段,想直接通过distinct是不可能实现的。但可以通过其他⽅法实现关于SQL Server将⼀列的多⾏内容拼接成⼀⾏的问题讨论

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- axer.cn 版权所有 湘ICP备2023022495号-12

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务