跳到主要内容
翻译页面

本页面由 AI 辅助从英文翻译而来。如两者存在差异,以英文版本为准。

SUBSTRING

返回字符表达式或二进制表达式的一部分。SUBSTR 是 SUBSTRING 的别名。

另请参阅:
[SELECT] [ 数据类型 ]


信息

要从 JSON 对象中提取字段,请使用 JSON_EXTRACT 函数。

语法​

SELECT SUBSTRING(expression, start[, length]) FROM <multipartIdentifier>;
SELECT SUBSTR(expression, start[, length]) FROM <multipartIdentifier>;

参数​

expression
ASCII 字符串或 BLOB。

如果 expression 是字符串,则字符索引指的是实际的 UTF-8 字符。如果 expression 是 BLOB,则索引指的是字节。

start
一个整数,表示要返回的输入表达式子序列的第一个字符或字节。如果 start 为负数,则从右侧而不是左侧开始计数来确定子字符串的第一个字符。

expression 最左侧的字符编号为 1。

length
可选的整数值,表示从 start 值之后要返回的子序列的长度。如果省略 length,则返回直到 expression 指定的字符串或 BLOB 末尾的所有字符。

如果 length 为负数,则使用 length 的绝对值。

返回值​

根据 expression 的类型返回字符串或 BLOB 值。


示例​

返回列的前 n 个字符​

SELECT SUBSTRING(name, 1, 5) as "first five chars"
FROM google.compute.instances
WHERE project = 'stackql-demo'
AND zone = 'australia-southeast1-a';

截去列的前 n 个字符​

SELECT SUBSTR(name, 5) as "from char 5"
FROM google.compute.instances
WHERE project = 'stackql-demo'
AND zone = 'australia-southeast1-a';

返回列的最后 n 个字符​

SELECT SUBSTRING(name, -5) as "last five chars"
FROM google.compute.instances
WHERE project = 'stackql-demo'
AND zone = 'australia-southeast1-a';

有关更多信息,请参阅 https://www.sqlite.org/lang_corefunc.html#substr