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

ROW CHỌN SQL

Điều đó dễ dàng thực hiện với row_number() chức năng cửa sổ:

; with  numbered as
        (
        select  row_number() over (order by [time]) rn
        ,       count(*) over() as cnt
        ,       *
        from    Table1
        )
select  *
from    numbered cur
left join
        numbered prev
on      cur.rn = prev.rn + 1
left join
        numbered next
on      cur.rn = next.rn - 1
where   cur.rn in (1, cur.cnt) -- first or last row
        or (cur.id = 'start' and prev.id = 'stop') -- start after stop
order by
        cur.rn

Ví dụ trực tiếp trên SQL Fiddle.

Không phải là đầu ra ví dụ của bạn không đáp ứng yêu cầu của bạn. Nó bao gồm một số hàng không khớp với ba tiêu chí (hàng đầu tiên, hàng cuối cùng, bắt đầu sau điểm dừng.)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để sử dụng chú thích cấu trúc để đặt kiểu SQL thành Ngày trong cách tiếp cận đầu tiên của mô hình

  2. Lấy và cài đặt Microsoft SQL Server Management Studio

  3. Bỏ qua một số cột trong SqlBulkCopy

  4. Xóa dữ liệu khỏi các bảng phụ thuộc

  5. Bất kỳ cạm bẫy ẩn nào khi thay đổi một cột từ varchar (8000) thành varchar (max)?