zoukankan      html  css  js  c++  java
  • 过滤掉多余的重复记录的SQL语句

    表中取出的fw_id有可能有重复的,结果可能如下

    fw_id,      file_title       

    14             关于组织征集安全生产“千项”新型实用产品的通知                                                          
    6               关于加强上海市安全生产专家管理的补充通知
    18             关于什么什么的通知
    18             关于什么什么的通知                  
    18             关于什么什么的通知
    7               关于对《上海市国民经济和社会发展地十二个五年规划纲要草案(征求意见稿)》修改建议
    1               关于提请对上海市安全生产技术支撑体系专业中心市级实验室项目进行审计的函

     现在需要将fw_id=18的记录只保留一条,重复记录只保留第一条就可以了,摸索了半天,最终方法如下:

     

    with x as (

    select a.*,
    (select flow_name from flow where flow_id=a.flow_id) as flow_name
    from AM_Fawen a,am_subproject3 b,am_projectlist c,taskcenter d,userlist u
    where a.sp3_id=b.sp3_id
                            and b.sp3_id=c.pl_subprojectid
                            and b.sp3_tablename=c.pl_subprojecttable
                            and c.project_id=d.project_id
                            and ','+cast(u.id as varchar)+',' like d.handlers_assigned
                            and d.status=0 and b.sp3_projectname like '%%'
                          and fun_name like '%%'
    )
    ,
    y as (
    select *,count(fw_id) over (partition by fw_id) r,row_number() over (partition by fw_id order by fw_id) rno from x
    )   
    select * from y where rno=1

  • 相关阅读:
    TYPE_SCROLL_INSENSITIVE is not compatible with CONCUR_UPDATABLE
    with admin option /with grant option
    通过动态SQL语句创建游标
    Vue:在vue-cli中使用Bootstrap
    Vue:$set和$delete
    Vue:如何在vue-cli中创建并引入自定义组件
    MVC教程四:Controller向View传值的几种方式
    Vue:生命周期
    Vue.js常用指令:v-model
    vue:过滤器
  • 原文地址:https://www.cnblogs.com/yuanxiaoping_21cn_com/p/2160579.html
Copyright © 2011-2022 走看看