Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 参考 » 使用 SQL » SQL 函数 » SQL 函数 (P-Z)

 

SUBSTRING 函数 [String]

返回字符串的子串。

语法
{ SUBSTRING | SUBSTR } ( string-expression, start 
[, length ] )
参数
  • string-expression   从中返回子串的字符串。

  • start   要返回的子串的开始位置(以字符为单位)。

  • length   要返回的子串的长度(以字符为单位)。如果指定了 length,便将子串限制为不能超过该长度。

返回值

LONG BINARY

LONG VARCHAR

LONG NVARCHAR

注释

此函数的行为取决于 ansi_substring 数据库选项的设置。当将 ansi_substring 选项设置为 On(缺省值)时,SUBSTRING 函数的行为对应于 ANSI/ISO SQL/2003 行为。其行为如下所示:

ansi_substring 选项设置 起始值 长度值
On 字符串中的第一个字符处于位置 1。对负或零起始偏移的处理方法是:将其当作在字符串左侧填充了非字符。

正的 length 指定子串在开始位置右侧第 length 个字符处结束。

负的 length 会返回错误。

Off

字符串中的第一个字符处于位置 1。负起始位置指定到字符串结尾(而非开头)的字符数。

如果 start 为零且 length 为非负数,则使用 1 作为 start 的值。如果 start 为零且 length 为负数,则使用 -1 作为 start 的值。

正的 length 指定子串在开始位置右侧第 length 个字符处结束。

length 表示至多返回开始位置左侧(包括开始位置)的 length 个字符。

如果 string-expression 是二进制数据类型,则 SUBSTRING 函数的行为与 BYTE_SUBSTR 相同。

要获取字符串尾端的字符,应使用 RIGHT 函数。

此函数支持 NCHAR 输入和/或输出。如果输入字符串使用字符长度语义,就会在可能的情况下根据字符长度语义对返回值进行说明。

另请参见
标准和兼容性
  • SQL/2003   核心特性。

示例

下表显示了 SUBSTRING 函数返回的值。

示例 结果
SUBSTRING( 'front yard', 1, 4 ) fron
SUBSTRING( 'back yard', 6, 4 ) yard
SUBSTR( 'abcdefgh', 0, -2 ) 如果 ansi_substring 为 On,返回错误
SUBSTR( 'abcdefgh', -2, 2 ) 如果 ansi_substring 为 On,返回空字符串