替换DISTINCT的方法查找重复记录

本文探讨了使用SQL DISTINCT关键字去除重复记录的方法及限制,并提供了一种更灵活的解决方案,即通过子查询结合MIN()函数和GROUP BY子句来实现多字段去重。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通常选择重复记录,都需要用到DISTINCT,但有个不好的地方,就是不能选择多个字段,上网找了良久,在动网发现一个贴解决这个问题,利用的下面的语句:
sql="select a,b from tab where id in (select min(id) from tab group by a)"
  关于Sql的Distinct防止记录重复语句的疑惑
  以前很少用,但现在有个项目要求取出的记录没有重复的
rs.open "select Distinct 会员 from 表1 where 主题=false and 经验>200 order by 会员 desc",link1,1,1
  以上SQL语句可以取出数据库中符合条件的会员(而且可以实现没有反回重复记录),但如果改成以下三种情况,就会出现调不出记录或调出的记录有重复或者调出的记录异常,请问这是为什么?难道Distinct一次指定筛选一个字段?
rs.open "select Distinct * from 表1 where 主题=false and 经验>200 order by 会员 desc",link1,1,1
rs.open "select Distinct 会员,注册日期 from 表1 where 主题=false and 经验>200 order by 会员,注册日期 desc",link1,1,1
rs.open "select Distinct 会员,注册日期 from 表1 where 主题=false and 经验>200 order by 会员 desc",link1,1,1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值