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

Permintaan untuk memeriksa rentang yang tumpang tindih di server sql?

Cara termudah untuk menemukan tumpang tindih adalah seperti ini:

IF EXISTS (SELECT 1 FROM table WHERE @myValueLo <= ExistingRangeEnd AND @myValueHi >= ExistingRangeStart)
  -- Overlaps
ELSE
  -- Doesn't overlap

Ini dapat terbukti berfungsi jika Anda membandingkan kondisi di atas dengan masing-masing batang dalam diagram di bawah ini:

Existing range:         |-------------------|
Overlaps:       |-------------|       |------------|
                |----------------------------------|
                           |-------------|
Not overlaps:   |-----|                       |----|

dalam semua kasus tumpang tindih, kedua tes ini benar:

  • tanggal mulai dari rentang yang ada selalu sebelum tanggal akhir dari rentang baru
  • tanggal akhir dari rentang yang ada adalah setelah tanggal mulai dari rentang baru

Mereka yang tidak tumpang tindih gagal satu atau lain dari tes ini.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SqlParameter sudah ditampung oleh SqlParameterCollection lain - Apakah using() {} curang?

  2. Tentukan ukuran baris untuk tabel

  3. Cara Mendapatkan Model Pemulihan Database di SQL Server menggunakan T-SQL

  4. Kesalahan pembulatan SQL Server, Memberikan nilai yang berbeda

  5. Kesalahan overflow aritmatika mengubah ekspresi menjadi tipe data menjadi