Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

SQL MEMILIH BARIS

Itu mudah dilakukan dengan row_number() fungsi jendela:

; 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

Contoh langsung di SQL Fiddle.

Bukan berarti keluaran contoh Anda tidak memenuhi persyaratan Anda. Ini mencakup beberapa baris yang tidak cocok dengan salah satu dari tiga kriteria (baris pertama, baris terakhir, mulai setelah berhenti.)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menerima panjang kolom yang tidak valid dari klien bcp untuk colid 6

  2. OPENROWSET BULK Izin ke Folder Bersama

  3. SQL Server:datetime di luar jangkauan kesalahan

  4. Cara membuat tabel Temp dengan SELECT * INTO tempTable FROM CTE Query

  5. Memotong semua tabel dalam Database di SQL Server - Tutorial SQL Server / TSQL Bagian 55