Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

T-SQL МЕЖДУ проблема първа максимална стойност

Като документация казва:

Не казва нищо за размяната на start_expression и end_expression, за да съответстват на min и max стойности. Трябва да очаквате документирания резултат, а не както смятате, че трябва.

За любопитните, стандартът ANSI SQL99 указва, че предикатът BETWEEN трябва да включва клауза за SYMMETRIC или ASYMMETRIC сравнение. Само SYMMETRIC има право да разменя началния_диапазон и крайния_диапазон, ASYMMETRIC се изисква да бъде строг. АСИМЕТРИЧНАТА форма е неявната форма. С други думи реализация, която интерпретира A BETWEEN X and Y като (A>=X AND A<=Y) OR (A>=Y AND A<=X) , както предлага OP, не е съвместим със стандарта.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. LOG10() Примери в SQL Server

  2. SQL Server 2008 T-SQL UDF шансове и краища

  3. Минали ли са първичните ключове?

  4. Извличане на данни от съхранена процедура, която има множество набори от резултати

  5. Вмъкнете двойни кавички в SQL изхода