Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

T-SQL BETWEEN problem maksymalna wartość najpierw

Jako dokumentacja mówi:

Nie mówi nic o zamianie start_expression i end_expression, aby dopasować wartości min i max. Powinieneś oczekiwać, że wynik będzie udokumentowany, a nie taki, jak uważasz, że powinien.

Dla ciekawskich, standard ANSI SQL99 określa, że ​​predykat BETWEEN powinien zawierać klauzulę porównania SYMMETRIC lub ASYMMETRIC. Tylko SYMETRYCZNA może zamienić zakres początkowy i końcowy, a SYMETRYCZNA musi być ścisła. Forma ASYMETRYCZNA jest formą niejawną. Innymi słowy implementacja, która interpretuje A BETWEEN X and Y jako (A>=X AND A<=Y) OR (A>=Y AND A<=X) , jak sugeruje OP, nie jest zgodny ze standardami.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ograniczenie klucza obcego może powodować cykle lub wiele ścieżek kaskadowych?

  2. Znajdź TYLKO wielkie litery w słowie za pomocą zapytania w SQL Server

  3. jak uzyskać pełny zestaw wyników z SSMS

  4. Odpowiednik OFFSET w SQL Server

  5. Próba zaimportowania pliku FoxPro DBF do SQL Server