substr()
是一个系统函数,用于返回从字符串中指定位置开始的子字符串。
substr()
添加于 PostgreSQL 6.1。
用法
substr (string
text
,start
integer
[,count
integer
] ) →text
substr()
返回从指定起始位置(第一个字符从 1
开始计数)开始的字符串部分,可以选择指定字符数,否则直到字符串结束。如果起始位置超过字符串末尾,则返回空字符串。如果提供负起始值,则返回整个字符串;如果指定了字符数,则返回从字符串开头到从 start 加上 count 得到的位置的字符。
在功能上,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 字符串函数和运算符