监理公司管理系统 | 工程企业管理系统 | OA系统 | ERP系统 | 造价咨询管理系统 | 工程设计管理系统 | 甲方项目管理系统 | 签约案例 | 客户案例 | 在线试用
X 关闭
微信营销软件

当前位置:工程项目OA系统 > 领域应用 > 微信营销 > 微信营销软件

SQL去除重复记录

申请免费试用、咨询电话:400-8352-114

  有两个意义上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,二是部分关键字段重复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略。 1、对于第一种重复,比较容易解决,使用 select distinct * from tableName 就可以得到无重复记录的结果集。 如果该表需要删除重复的记录(重复记录保留1条),可以按以下方法删除 select distinct * into #Tmp from tableName drop table tableName select * into tableName from #Tmp drop table #Tmp 发生这种重复的原因是表设计不周产生的,增加唯一索引列即可解决。 2、这类重复问题通常要求保留重复记录中的第一条记录,操作方法如下 假设有重复的字段为Name,Address,要求得到这两个字段唯一的结果集 select identity(int,1,1) as autoID, * into #Tmp from tableName select min(autoID) as autoID into #Tmp2 from #Tmp group by Name,Address select * from #Tmp where autoID in(select autoID from #tmp2) 最后一个select即得到了Name,Address不重复的结果集(但多了一个autoID字段,实际写时可以写在select子句中省去此列) or With Dups as (     select *, row_number() over (partition by Product_Code order by Product_Code) as RowNum     from #prod ) Delete from Dups where rownum > 1;

  如果认为此文对您有帮助,别忘了支持一下哦!

  自己用distinct的记录如下:

[java]view plaincopy

  

  • <!--客户批次列表-->

  • <selectid="listPageCusBatch"parameterType="paramMap"resultType="pd">

  •   selectdistincttp.post_batchNo,tp.post_time,tp.customer_id,tc.customer_name

  •   FROMtb_dispatch_mail_posttp

  •   LEFTJOINtb_dispatch_customertcONtp.customer_id=tc.customer_id

  • <where>

  •   tp.post_batchnoisnotnull

  • <iftest="paramMap.postTimeStart!=nullandparamMap.postTimeStart.length()>0">

  •   ANDTO_DATE(#{paramMap.postTimeStart},'yyyy-mm-ddhh24:mi:ss')<=tp.post_time

  • </if>

  • <iftest="paramMap.postTimeEnd!=nullandparamMap.postTimeEnd.length()>0">

  •   ANDTO_DATE(#{paramMap.postTimeEnd},'yyyy-mm-ddhh24:mi:ss')>=tp.post_time

  • </if>

  • </where>

  •   ORDERBYtp.post_batchnoDESC

  • </select>

发布:2007-04-07 16:32    编辑:泛普软件 · xiaona    [打印此页]    [关闭]

泛普微信营销软件其他应用

微营销 微信推广 微信营销软件 微信二维码 微信商城 微信支付 微信开店 微信公众平台 微信公众号 微信公众平台登录 微信怎么玩 微信认证 下载微信到手机 手机微信 微信官网 微信网页版 电脑微信 微信电脑版 微信公众平台注册 微信注册 微信公众号申请