• 售前

  • 售后

热门帖子
入门百科

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

[复制链接]
失室创 显示全部楼层 发表于 2021-10-26 12:45:00 |阅读模式 打印 上一主题 下一主题
下面先来看看例子: table表
字段1     字段2
   id        name
   1           a
   2           b
   3           c
   4           c
   5           b
库结构大概这样,这只是一个简朴的例子,实际环境会复杂得多。
比如我想用一条语句查询得到name不重复的所有数据,那就必须
利用distinct去掉多余的重复记载。
select distinct name from table
得到的效果是:
----------
name
   a

   c
好像到达效果了,但是,我想要得到的是id值呢?改一下查询语句吧:
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之前,不然会报错

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作