首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

过滤掉数据中的反复数据,并且只保留一条

2013-09-05 
过滤掉数据中的重复数据,并且只保留一条各位,我遇到了一个对我而言很大的麻烦,对于一个sql的语句如何去过

过滤掉数据中的重复数据,并且只保留一条
各位,我遇到了一个对我而言很大的麻烦,对于一个sql的语句如何去过滤掉数据中的重复数据,并且只保留一条数据供使用,但是我这里的过滤是不能对其进行删除,只是单纯的过滤掉它。


为了让各位帮助我的大神看清楚我再把上面的代码复制一下:
select GID = ROW_NUMBER() over (order by convert(int ,XL.DJL) desc),XL.* from (select XL.XLMC,XL.XLTS,XL.F_219930215757439 XLID,XL.TP,XL.DJL,XL.FBSJ,XL.ZXL,'gny/ztslb' LINK from DEFINE_CXSYXLTJLB TJ inner join DEFINE_XL_GN XL on (TJ.XLID=XL.F_219930215757439) UNION ALL select XL.XLMC,XL.XLTS,XL.F_219930215757439 XLID,XL.TP,XL.DJL,XL.FBSJ,XL.ZXL,'cjy/ztslb' LINK from DEFINE_CXSYXLTJLB TJ inner join DEFINE_XL_CJ XL on (TJ.XLID=XL.F_219930215757439) UNION ALL select XL.XLMC,XL.XLTS,XL.F_219930215757439 XLID,XL.TP,XL.DJL,XL.FBSJ,XL.ZXL,'zby/ztslb' LINK from DEFINE_CXSYXLTJLB TJ inner join DEFINE_XL_ZTC XL on (TJ.XLID=XL.F_219930215757439) UNION ALL select XL.XLMC,XL.XLTS,XL.F_219930215757439 XLID,XL.TP,XL.DJL,XL.FBSJ,XL.ZXL,'zyx/ztslb' LINK from DEFINE_CXSYXLTJLB TJ inner join DEFINE_ZYX XL on (TJ.XLID=XL.F_219930215757439)) XL order by convert(int ,XL.DJL) desc ;
由于小弟我经常在问问题所以分数已经不多了,不过还是恳求大神的帮助啊!过滤掉数据中的反复数据,并且只保留一条 行业数据 SQL select 数据过滤


[解决办法]
你都会用分析函数ROW_NUMBER() ,使用分析函数ROW_NUMBER() Over(partition by 重复字段 order by 排序字段)生产行号,然后取行号为1的记录就可以过滤了


[解决办法]
把里面所有的UNION ALL改成UNION即可

SELECT  GID = ROW_NUMBER() OVER ( ORDER BY CONVERT(INT, XL.DJL) DESC ) ,
        XL.*
FROM    ( SELECT    XL.XLMC ,
                    XL.XLTS ,
                    XL.F_219930215757439 XLID ,
                    XL.TP ,
                    XL.DJL ,
                    XL.FBSJ ,
                    XL.ZXL ,
                    'gny/ztslb' LINK
          FROM      DEFINE_CXSYXLTJLB TJ
                    INNER JOIN DEFINE_XL_GN XL ON ( TJ.XLID = XL.F_219930215757439 )
          UNION
          SELECT    XL.XLMC ,
                    XL.XLTS ,
                    XL.F_219930215757439 XLID ,
                    XL.TP ,
                    XL.DJL ,


                    XL.FBSJ ,
                    XL.ZXL ,
                    'cjy/ztslb' LINK
          FROM      DEFINE_CXSYXLTJLB TJ
                    INNER JOIN DEFINE_XL_CJ XL ON ( TJ.XLID = XL.F_219930215757439 )
          UNION
          SELECT    XL.XLMC ,
                    XL.XLTS ,
                    XL.F_219930215757439 XLID ,
                    XL.TP ,
                    XL.DJL ,
                    XL.FBSJ ,
                    XL.ZXL ,
                    'zby/ztslb' LINK
          FROM      DEFINE_CXSYXLTJLB TJ
                    INNER JOIN DEFINE_XL_ZTC XL ON ( TJ.XLID = XL.F_219930215757439 )
          UNION
          SELECT    XL.XLMC ,
                    XL.XLTS ,
                    XL.F_219930215757439 XLID ,
                    XL.TP ,
                    XL.DJL ,


                    XL.FBSJ ,
                    XL.ZXL ,
                    'zyx/ztslb' LINK
          FROM      DEFINE_CXSYXLTJLB TJ
                    INNER JOIN DEFINE_ZYX XL ON ( TJ.XLID = XL.F_219930215757439 )
        ) XL
ORDER BY CONVERT(INT, XL.DJL) DESC;

热点排行