SUBSTR 函数的任何参数都必须为内建的数据类型。
Start_Position 的值 | 数据库服务器如何确定返回的子集的起始位置 |
---|---|
正的 | 从 source_string 中的第一个字符开始向前计数 |
零(0) | 从 source_string 中的第一个字符向前计数(也就是说,将 start_position 0 处理为等同于 1) |
负的 | 从紧跟在 source_string 中最后一个字符的原始字符向后计数。值 -1 返回 source_string 中的最后一个字符。 |
length 参数指定子集中逻辑字符的数目(不是字节数)。如果您省略 length 参数,则 SUBSTR 函数返回从 start_position 处开始的 source_string 的整个部分。
如果您指定负的 start_position,其绝对值大于 source_string 中字符的数目,或如果 length 大于从 start_position 至 source_string 的末尾的字符的数目,则 SUBSTR 返回 NULL。(在此情况下,SUBSTR 的行为不同于 SUBSTRING 函数的行为,返回从 start_position 至 source_string 的最后一个字符的所有字符,而不是返回 NULL。)
返回数据类型是 source_string 参数的类型。如果主变量是源,则返回值为 NVARCHAR 或 NCHAR,根据返回的字符串的长度来定,使用 来自 CONCAT 的返回类型 部分描述的返回类型提升规则。
SELECT SUBSTR('ABCDEFG', -3) FROM mytable;
(constant) |
---|
EFG |