日期:2014-05-17  浏览次数:20369 次

同一个id号的多条记录,检查这些记录的时间字段相差小于5秒的有哪些
同一个id号的多条记录,把这些同一id号记录的时间字段相差小于5秒的记录,select出来,,
大家看看有什么高效的好方法。。

------解决方案--------------------
用datediff(ss,上一个时间,本次时间)<=5来筛选那些间隔小于五秒的数据。
------解决方案--------------------
如果你的数据是'00102821',我建议你处理的时候要硬性指定前面两个,比如2000102821这样
------解决方案--------------------
SQL code

     select *   
       from TB a    
         where exists (select * from TB b  where b.time > a.time and b.time < dateadd(ss,5,a.time))

------解决方案--------------------
SQL code
SELECT * FROM TB WHERE EXISTS (SELECT * FROM TB A WHERE ABS(DATEDIFF(SS,A.TIME,B.TIME))<5)

------解决方案--------------------
参照一下这个,对于能用JOIN的联接,尽量少用EXISTS和IN
SELECT * FROM TB A 
INNER JOIN TB B 
ON A.ID=B.ID
AND A.TIME<>B.TIME
AND ABS(DATEDIFF(SS,A.TIME,B.TIME))<5