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

pergi ke baris berikutnya ketika kolom berisi nilai tertentu (sql server 2008)

Ada cara yang relatif efisien untuk menentukan apakah datanya benar -- hampir saja. Ini akan menentukan apakah ada "1" atau "2" yang hilang dalam data. Versi ini tidak menentukan apakah id pertama adalah "1", karena pertanyaan Anda tidak menyebutkannya.

Solusi terbaik adalah menggunakan lag() dan lead() . Namun, SQL Server 2008 tidak mendukung fungsi ini. Jadi, mari kita mendekati ini sebagai celah-dan-pulau. Apakah ada situasi dengan lebih dari 1 "1" atau "2" berturut-turut untuk id tertentu ? Kode berikut akan menemukan anomali ini:

select id, inoutid, count(*) as num_in_row,
from (select t.*,
             row_umber() over (partition by id, inoutid order by date, hours, minute) as seqnum_ii,
             row_umber() over (partition by id order by date, hours, minute) as seqnum_i
      from t
     ) t
group by id, inoutid, (seqnum_i - seqnum_ii)
having count(*) > 1



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Memilih Prosesor untuk SQL Server 2014 – Bagian 2

  2. Cara menggunakan SEMUA Operator Logika di SQL Server - Tutorial SQL Server / TSQL Bagian 126

  3. Menjalankan total dalam tampilan SQL

  4. Pemfilteran nhibernate berdasarkan output fungsi yang ditentukan pengguna

  5. Tabel sementara di SQL Server 2005 tidak otomatis turun