Zoals de documentatie zegt:
Zegt niets over het verwisselen van de start_expression en end_expression om overeen te komen met min en max waarden. U mag het resultaat verwachten zoals gedocumenteerd, niet zoals u denkt dat het zou moeten.
Voor de nieuwsgierigen die er zijn, specificeert de ANSI SQL99-standaard dat het predikaat BETWEEN een clausule moet bevatten voor SYMMETRISCHE of ASYMMETRISCHE vergelijking. Alleen de SYMMETRIC mag de start_range en end_range omwisselen, de ASYMMETRIC moet streng zijn. De ASYMMETRISCHE vorm is de impliciete vorm. Met andere woorden een implementatie die A BETWEEN X and Y
. interpreteert als (A>=X AND A<=Y) OR (A>=Y AND A<=X)
, zoals het OP suggereert, voldoet niet aan de standaard.