sql 查询重复记录值取一条


SELECT
* FROM JBL_WebLog WHERE JBL_WebLog_PID IN ( --根据userName分类获取数据最小ID列表 SELECT MIN(JBL_WebLog_PID) FROM JBL_WebLog GROUP BY UserName );

 上面是数据库自增长的ID,但是有很多重复的对象数据,现在只需要看每个状态的一条数据

比如账户aasaas登录很多次,但是现在我只想知道他是不是登陆过,所以只要取出来多次登录中的一次就行了

 

下面是  查询记录中只有一条的数据,多余一条的筛选掉

SELECT  *
FROM    JBL_WebLog
WHERE   CreateDate IN ( SELECT CreateDate
                     FROM   JBL_WebLog
                     GROUP BY CreateDate
                     HAVING COUNT(CreateDate) = 1 );

 

下面是只查询多余一条的数据,即所有重复的记录都会查询到,只有一条的数据被筛选掉

SELECT  *
FROM    JBL_WebLog
WHERE   CreateDate IN ( SELECT CreateDate
                     FROM   JBL_WebLog
                     GROUP BY CreateDate
                     HAVING COUNT(CreateDate) > 1 );

 取出ID不一定连续的第21-30条数据:

         SELECT TOP 10 * FROM  dbo.JBL_WebLog WHERE JBL_WebLog_PID > 
         (SELECT MAX(a.JBL_WebLog_PID) FROM(SELECT TOP 20 * FROM dbo.JBL_WebLog) AS a)

 

posted @ 2017-03-26 19:13  山顶洞外人  阅读(13274)  评论(0编辑  收藏  举报