首页 > 数据库 > > SQL DISTINCT
SQL DISTINCT 的作用就是用来返回唯一不同的值。
在工作中,我们常常会碰到某些表会有重复的值,而我们因业务需求却仅需要唯一值的数据报表,此时就会用到distinct来过滤了
SQL DISTINCT 语法
SELECT DISTINCT 列名称 FROM 表名称举例:
用SELECT查询表中"city"列的数据如下:
SELECT city FROM Users;"User"表:

从结果来看,有多条记录是重复的值。如果只需要唯一不同的记录,那么我们可以使用SELECT DISTINCT语句:
SELECT DISTINCT city FROM Users;
现在从结果集中可以看到北京、南京、上海都仅列出一次记录了。
大家伙可能有疑问?上面例子返回的只有一列,那想要返回多列呢?
先看下面例子:
SELECT DISTINCT city,name FROM Users;输出结果集:

大家从输出的结果集可以看到,并非我们想要的结果。感觉语句不生效了?也不是,其实语句是生效的,只不过是要满足ctiy和name两列的值同时相等才可以返回唯一值记录。
那如果想同时要看到多列内容怎么办?
想直接通过distinct来实现真没办法,如果大家伙想到好的办法,请分享一下。那就没有办法了吗?答案是有的,通过group by语句还是可以实现的。

distinct必须放在开头,就是第一个列名称前面。
select name,distinct city from users --此语句会报错的!!!
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31537575/viewspace-3159812/ ,如需转载,请注明出处,否则将追究法律责任。