The string from which the substring is taken.
An integer expression indicating the start of the substring. A positive integer starts from the beginning of the string,
with the first character being position 1. A negative integer specifies a substring starting from the end of the string, the
final character being at position -1.
An integer expression indicating the length of the substring. A positive length specifies the number of bytes to be taken starting at the start position. A negative length returns at most length bytes up to, and including, the starting position, from the left of the starting position.
BINARY, VARCHAR, or NVARCHAR. The value returned depends on the type of string-expression. Also, the arguments you specify determine if the returned value is LONG. For example, LONG is not returned when you specify
a constant < 32K for length.
If length is specified, the substring is restricted to that number of bytes. Both start and length can be either positive or negative. Using appropriate combinations of negative and positive numbers, you can get a substring
from either the beginning or end of the string.
If start is zero and length is non-negative, a start value of 1 is used. If start is zero and length is negative, a start value of -1 is used.