首页 > 数据库 >SqlServer中distinct的用法(不重复的记录)

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

时间:2023-02-22 18:15:33浏览次数:37  
标签:name distinct SqlServer 用法 报错 table id select

https://www.jb51.net/article/24717.htm

往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是distinct只有用二重循环查询来解决,而这样对于一个数据量非常大的站来说,无疑是会直接影响到效率的。

下面先来看看例子:

table表

字段1     字段2
   id        name
   1           a
   2           b
   3           c
   4           c
   5           b

select distinct name, id from table

结果会是:

---------- 

id name
   1 a
   2 b
   3 c
   4 c
   5 b

distinct怎么没起作用?作用是起了的,不过他同时作用了两个

字段,也就是必须得id与name都相同的才会被排除

我们再改改查询语句:

select id, distinct name from table

很遗憾,除了错误信息你什么也得不到,distinct必须放在开头。

难到不能把distinct放到where条件里?能,照样报错。

--------------------------------------------------------

下面方法可行:

select *, count(distinct name) from table group by name

结果:

   id name count(distinct name)
   1 a 1
   2 b 1
   3 c 1

最后一项是多余的,不用管就行了,目的达到

group by 必须放在 order by 和 limit之前,不然会报错

标签:name,distinct,SqlServer,用法,报错,table,id,select
From: https://www.cnblogs.com/Dongmy/p/17145361.html

相关文章

  • sqlserver、mysql、sqlite json类型数据查询及索引优化
     sqlserver:#querySELECTSalesOrderNumber,OrderDate,JSON_VALUE(Info,'$.Customer.Name')ASCustomerNameFROMSales.SalesOrderHeaderWHEREJSON_VA......
  • SQLSERVER 查询死锁
    MESLisnterselectrequest_session_idspid,OBJECT_NAME(resource_associated_entity_id)tableNamefromsys.dm_tran_lockswherere......
  • rsync用法详细解释
      提要熟悉rsync的功能及其特点掌握rsync语法及常用选项的功能掌握rsync命令的三种基本使用方法掌握如何筛选rsync的传输目标掌握使用rsync......
  • 基于List的Stream用法
    第一:基础用法packagecom.glch.test;importcom.glch.base.util.StringUtil;importjava.util.ArrayList;importjava.util.List;importjava.util.Set;importja......
  • tcpdump用法
    超详细的网络抓包神器tcpdump使用指南https://juejin.cn/post/68449040841687695491.基本语法和使用方法tcpdump的常用参数如下:$tcpdump-ieth0-nn-s0-vport80-......
  • Mysql 获取当前日期前一天(DATE_SUB()函数和DATE_ADD()的用法)
    Mysql获取当前日期前一天DATE_SUB()函数的用法DATE_ADD()函数一、用途:函数调用形式:简单应用业务需要:  这是关于一个报名活动的需求,因为报名开始时间和活动结束时间......
  • mysql中case用法
    转载请注明出处:       简单CASE语句仅允许您将表达式的值与一组不同的值进行匹配。为了执行更复杂的匹配,如范围,您可以使用可搜索CASE语句。可搜索CASE语句等同于IF......
  • git常见用法
      图片来自https://www.runoob.com/git/git-basic-operations.html新建/复制git仓库:1.gitinit2.gitclone<SSH[address]>查看/创建/删除分支:gitbranch/git......
  • break label 用法:跳出多重嵌套循环
    今天在看别人代码的时候看到一个之前没注意到的break用法:breaklabel。我们都知道break的用法,是用来跳出所在的循环,处理代码如下:publicclassBreakTest{publi......
  • python之路73 vue框架 vue-cli创建项目、vue项目目录介绍、es6导入导出语法、登录功
    vue-cli创建项目前端做成项目---》使用工具(vue-cli),创建vue项目,单页面应用(spa),组件开发,把xx.vue,ts,saas,less---》编译---》在浏览器中执行vue-cli创建项目开发,在项......