Funciones de cadena T-SQL: diferencia entre usar izquierda / derecha y subcadena y comportamiento extraño

Estoy usando SQL Server 2008 y 2005 (Express). Estoy tratando de extraer parte de una cadena alfanumérica de un campo varchar.

RIGHT(str_field, 3) produce valores nulos peroSUBSTRING(str_field, LEN(str_field)-2, LEN(str_field)) da el valor correctoLEFT(str_field, 7) da los valores esperados. ¿Lo que da?

Hubiera pensado queRIGHT(str_field, 3) ySUBSTRING(str_field, LEN(str_field)-2, LEN(str_field)) son expresiones equivalentes

Respuestas a la pregunta(1)

Su respuesta a la pregunta