PostgreSQL 提供了多种方式来截取字符串,常用的方法有 SUBSTRING()、LEFT()、RIGHT() 和使用 [] 的切片语法。下面介绍这些方法的具体用法和示例。
SUBSTRING() 函数
这是最常用的字符串截取函数,支持从指定位置开始截取一定长度,也支持正则表达式。
SUBSTRING(string FROM start FOR length):从 start 位置开始,截取 length 个字符 SUBSTRING(string FROM start):从 start 开始到末尾 SUBSTRING(string FROM pattern):使用正则提取匹配部分示例:
1
2
3
4
5
— 截取第3个字符开始的4个字符
SELECT SUBSTRING(Hello World FROM 3 FOR 4); — 返回 llo
<p>– 从第7个字符开始到结尾
SELECT SUBSTRING(Hello World FROM 7); — 返回 World</p><p>– 使用正则提取邮箱中的域名
SELECT SUBSTRING(user@example.com FROM @(.+)); — 返回 example.com</p>
LEFT() 和 RIGHT() 函数
用于快速提取字符串左侧或右侧的若干字符。
LEFT(string, n):返回前 n 个字符 RIGHT(string, n):返回后 n 个字符示例:
1
2
3
4
— 取前5个字符
SELECT LEFT(Hello World, 5); — 返回 Hello
<p>– 取后5个字符
SELECT RIGHT(Hello World, 5); — 返回 World</p>
字符串切片语法(类似数组)
PostgreSQL 支持使用方括号对字符串进行切片,语法类似于数组索引,注意起始位置是 1。
string[start:end]:从 start 到 end(包含 end) string[start:]:从 start 到结尾 string[:end]:从开头到 end示例:
1
2
3
4
5
— 第2到第5个字符
SELECT Hello World[2:5]; — 返回 ello
<p>– 从第7个字符到结尾
SELECT Hello World[7:]; — 返回 World</p><p>– 前6个字符
SELECT Hello World[:6]; — 返回 Hello </p>
基本上就这些常用方法。根据实际场景选择合适的方式:简单截取用 LEFT/RIGHT,灵活定位用 SUBSTRING,习惯切片语法可用 []。注意位置从 1 开始,不是 0。不复杂但容易忽略细节。
以上就是postgresql怎么截取字符串的详细内容,更多请关注php中文网其它相关文章!


