sql >> Databasteknik >  >> RDS >> Sqlserver

T-SQL MELLAN problem maxvärde först

Som dokumentationen säger:

Säger inget om att byta start_expression och end_expression för att matcha min och max värden. Du bör förvänta dig resultatet som dokumenterat, inte som du tror att det borde.

För de nyfikna där ute specificerar ANSI SQL99-standarden att BETWEEN-predikatet ska inkludera en sats för SYMMETRIC eller ASYMMETRIC jämförelse. Endast den SYMMETRISKA får byta startintervall och slutintervall, den ASYMMETRISKA måste vara strikt. Den ASYMMETRISKA formen är den implicita formen. Med andra ord en implementering som tolkar A BETWEEN X and Y som (A>=X AND A<=Y) OR (A>=Y AND A<=X) , som OP föreslår, är inte standardkompatibel.



  1. Skicka en array av strängar till en procedur och använda den i WHERE-satsen med IN

  2. Mysql LEFT JOIN av tre tabeller återgår till många rader

  3. Ändra kolumnnamn i MySQL

  4. Hur återställer jag SqLite-databasen i Android?