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)