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

Đánh số các hòn đảo trong SQL Server 2012

Nếu bạn chỉ muốn đánh số chúng, thì tôi đề xuất lag() với tổng tích lũy:

select t.*,
       sum(case when datefrom = dateadd(day, 1, prev_dateto
                then 0 else 1
           end) over (order by itemId, datefrom)
from (select t.*,
             lag(dateto) over (partition by itemid order by datefrom) as prev_dateto
      from table t
     ) t;

case xác định nơi một hòn đảo mới bắt đầu. Tổng tích lũy chỉ tính bằng cờ này.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tìm kiếm chuỗi ký tự đại diện Trigram trong SQL Server

  2. Lỗi chuyển đổi dữ liệu tải hàng loạt (cắt ngắn)

  3. Làm thế nào để có được khả năng tương thích giữa Mã hóa AES C # và SQL2k8?

  4. Kiểm tra tệp có tồn tại hay không trong máy chủ sql?

  5. Làm cách nào để cập nhật giá trị của tất cả các thuộc tính xml trong biến xml bằng t-sql?