Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Làm thế nào để thực hiện một truy vấn vòng lặp sql để kiểm tra sự khác biệt giữa các giá trị?

DECLARE @idFrom as int,
        @idTo as int,
        @gpsDateFrom as datetime,
        @gpsDateTo as datetime
DECLARE VehicleCursor CURSOR FAST_FORWARD FOR 
SELECT  vehicle_gps_id, 
        datetimeCol
FROM    yourtable
ORDER BY vehicle_gps_id
OPEN VehicleCursor FETCH NEXT FROM VehicleCursor INTO @idFrom, @gpsDateFrom
    FETCH NEXT FROM VehicleCursor INTO @idTo, @gpsDateTo
    WHILE @@FETCH_STATUS = 0 BEGIN 
        IF DATEDIFF(MI,@gpsDateFrom,@gpsDateTo) >5
        BEGIN
            --Break (your code here)
        END
        SET @idFrom = @idTo
        SET @gpsDateFrom = @gpsDateTo
        FETCH NEXT FROM VehicleCursor INTO @idTo, @gpsDateTo
    END 
CLOSE VehicleCursor 
DEALLOCATE VehicleCursor

Một cái gì đó như thế này sẽ làm việc cho bạn. Nó là một con trỏ chỉ chạy qua tất cả các cột của bạn so sánh ngày giờ. Bạn có thể nhập bất cứ điều gì bạn muốn làm vào phần nhận xét sau câu lệnh if.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mục đích của việc sử dụng CommandType.Tabledirect là gì

  2. Cách di chuyển cơ sở dữ liệu SQL Server sang cơ sở dữ liệu SQL Azure

  3. Chuyển đổi float thành varchar trong SQL Server mà không có ký hiệu khoa học

  4. SQL INSERT INTO từ nhiều bảng

  5. ALTER DATABASE / ADD FILE / VARIABLE FILENAME?