substr() 是一个系统函数,用于从字符串中指定的位置返回子字符串。
substr() 函数在 PostgreSQL 6.1 中被添加。
用法
substr (stringtext,startinteger[,countinteger] ) →text
substr() 函数会返回字符串中从指定起始位置(第一个字符计数为 1)开始,可选地指定字符数,否则直到字符串末尾的部分。如果起始位置超出字符串末尾,则返回一个空字符串。如果提供了负数的起始值,则返回整个字符串;如果指定了字符数,则返回从字符串开头直到由 *count* 加上 *start* 得出的位置的字符。
功能上,substr() 函数与 SQL 标准中的 substring() 函数等价,只是后者更冗长。
变更历史
- PostgreSQL 6.1
- 添加(提交 83978e1e)
示例
substr() 函数的基本用法示例
postgres=# SELECT substr('foobar', 4);
substr
--------
bar
(1 row)
返回指定数量的字符
postgres=# SELECT substr('foobar', 3, 3);
substr
--------
oba
(1 row)
substr() 函数可处理多字节字符
postgres=# SELECT substr('ほげほげ', 1, 2);
substr
--------
ほげ
(1 row)
负数的起始值是可能的,但实际用途有限
postgres=# SELECT substr('foobar', -3);
substr
--------
foobar
(1 row)
postgres=# SELECT substr('foobar', -3, 3);
substr
--------
(1 row)
postgres=# SELECT substr('foobar', -3, 7);
substr
--------
foo
(1 row)
不允许负数的子字符串长度
postgres=# SELECT substr('foobar', 4, -1);
ERROR: negative substring length not allowed
参考资料
- PostgreSQL 文档: SQL 字符串函数和操作符
