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

T-SQL ANTARA masalah nilai maks terlebih dahulu

Sebagai dokumentasi mengatakan:

Tidak mengatakan apa-apa tentang menukar start_expression dan end_expression agar sesuai dengan nilai min dan max. Anda harus mengharapkan hasilnya seperti yang didokumentasikan, bukan seperti yang Anda yakini seharusnya.

Untuk yang penasaran di luar sana, standar ANSI SQL99 menetapkan bahwa predikat ANTARA harus menyertakan klausa untuk perbandingan SYMMETRIC atau ASYMMETRIC. Hanya yang SYMMETRIC yang diizinkan untuk menukar start_range dan end_range, yang ASYMMETRIC harus ketat. Bentuk Asimetris adalah bentuk implisit. Dengan kata lain implementasi yang menginterpretasikan A BETWEEN X and Y sebagai (A>=X AND A<=Y) OR (A>=Y AND A<=X) , seperti yang disarankan OP, tidak sesuai standar.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Xampp MS SQL server PHP 5.6

  2. Cara memperbaiki "Server tidak dikonfigurasi untuk RPC" Msg 7411 menggunakan T-SQL

  3. Transaksi Entity Framework yang berjalan lama

  4. Tipe Data yang Ditentukan Pengguna dan tabel #temp

  5. Pindahkan satu nilai baris ke yang lain dalam SQL