SUBSTRING 函数的任何参数都必须为内建的数据类型。
返回数据类型是 source_string 参数的数据类型。如果主变量是源,则返回值为 NVARCHAR 或 NCHAR,根据返回的字符串的长度来定,使用 来自 CONCAT 函数的返回类型 部分描述的返回类型提升规则。
Start_Position 的值 | 数据库服务器如何确定返回子集的起始位置 |
---|---|
正的 |
从 source_string 中的第一个字符向前计数 例如,如果 start_position = 1,则 source_string 中的第一个字符是返回的子集中的第一个字符。 |
零(0) |
从 source_string 中的第一个字符之前(即,左边的第一个字符)的一个位置计数例如,如果 start_position = 0 且 length = 1,则数据库服务器返回 NULL,反之如果 length = 2,数据库服务器返回 source_string 中的第一个字符。 |
负的 |
从 source_string 中的最后一个字符之后(即,右边的第一个字符)的一个位置向后计数 例如,如果 start_position = -1,则返回的子集的起始位置是 source_string 中的最后一个字符。 |
SELECT SUBSTRING('ABCDEFG' FROM 3 FOR 2) FROM mytable;
(constant) |
---|
CD |
SELECT SUBSTRING('ABCDEFG' FROM -3 FOR 7) FROM mytable;
(constant) |
---|
ABC |