sql >> Base de Datos >  >> RDS >> Sqlserver

T-SQL ENTRE el valor máximo del problema primero

Como la documentación dice:

No dice nada acerca de intercambiar start_expression y end_expression para que coincidan con los valores mínimo y máximo. Debe esperar el resultado como está documentado, no como cree que debería.

Para los curiosos, el estándar ANSI SQL99 especifica que el predicado BETWEEN debe incluir una cláusula para la comparación SYMMETRIC o ASYMMETRIC. Solo el SYMMETRIC puede intercambiar start_range y end_range, el ASYMMETRIC debe ser estricto. La forma ASIMÉTRICA es la forma implícita. En otras palabras, una implementación que interpreta A BETWEEN X and Y como (A>=X AND A<=Y) OR (A>=Y AND A<=X) , como sugiere el OP, no cumple con los estándares.