집 >데이터 베이스 >MySQL 튜토리얼 >LEAD 및 LAG 없이 SQL Server 2008에서 인접한 행을 비교하는 방법은 무엇입니까?
SQL Server 2008의 LEAD 및 LAG 기능에 대한 대안
문제:
SQL Server 2008에서는 LEAD 및 LAG 기능을 지원하지 않습니다. 현재 행을 다음 행의 값과 비교하는 방법을 결정해야 합니다.
해결책:
한 가지 대안은 자체 조인을 수행하는 것입니다.
SELECT t.* FROM table t JOIN table tnext ON t.id = tnext.id - 1 AND t.StatusId = 1 AND tnext.StatusId = 6 AND DATEDIFF(SECOND, t.MinStartTime, tnext.MinStartTime) < 60;
이 쿼리는 현재 행의 상태가 1이고 다음 행의 상태가 6이며 두 행 사이의 시간 차이가 있는 행을 반환합니다. 두 행의 길이는 60초 미만입니다.
정확한 분 일치가 필요한 경우 쿼리를 수정할 수 있습니다.
SELECT t.* FROM table t JOIN table tnext ON t.id = tnext.id - 1 AND t.StatusId = 1 AND tnext.StatusId = 6 AND DATEDIFF(SECOND, t.MinStartTime, tnext.MinStartTime) < 60 AND DATEPART(MINUTE, t.MinStartTime) = DATEPART(MINUTE, tnext.MinStartTime);
위 내용은 LEAD 및 LAG 없이 SQL Server 2008에서 인접한 행을 비교하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!