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

Sự cố khi sử dụng ROW_NUMBER () OVER (PARTITION BY ...)

Tôi sẽ làm một cái gì đó như thế này:

;WITH x 
 AS (SELECT *, 
            Row_number() 
              OVER( 
                partition BY employeeid 
                ORDER BY datestart) rn 
     FROM   employeehistory) 
SELECT * 
FROM   x x1 
   LEFT OUTER JOIN x x2 
                ON x1.rn = x2.rn + 1 

Hoặc có thể nó sẽ là x2.rn - 1. Bạn sẽ phải xem. Trong mọi trường hợp, bạn có được ý tưởng. Khi bạn đã tự nối bảng, bạn có thể lọc, nhóm, sắp xếp, v.v. để lấy những gì bạn cần.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nhận danh sách các bảng có hoặc không có Ràng buộc khóa chính trong tất cả Cơ sở dữ liệu từ Phiên bản SQL Server - Hướng dẫn SQL Server / TSQL Phần 61

  2. Cách chuyển loại bảng do người dùng xác định sang yêu cầu MSSQL từ Java

  3. Thực thi tập hợp các truy vấn SQL bằng cách sử dụng tệp loạt?

  4. Kiểm tra xem trường có phải là số không, sau đó chỉ thực hiện so sánh trên các trường đó trong một câu lệnh?

  5. cách tốt hơn để tạo bảng tháng / năm