postgresql提供 SUBString()、LEFT()、RIGHT()和 切片 语法截取 字符串 。1. SUBSTRING(string FROM start for Length) 从指定位置截取固定长度,如 SUBSTRING(‘Hello World’ FROM 3 FOR 4)返回 ’llo ‘;2. LEFT(‘Hello World’, 5)取前 5 个字符得 ’Hello’,RIGHT 取后 n 个字符;3. 切片语法 ’string'[start:end]类似数组索引,如 ’Hello World'[2:5]返回 ’ello’。位置均从 1 开始,按需选择方法。

PostgreSQL 提供了多种方式来截取字符串,常用的方法有 SUBSTRING()、LEFT()、RIGHT() 和使用 [] 的切片语法。下面介绍这些方法的具体用法和示例。
SUBSTRING() 函数
这是最常用的字符串截取函数,支持从指定位置开始截取一定长度,也支持 正则表达式。
- SUBSTRING(string FROM start FOR length):从 start 位置开始,截取 length 个字符
- SUBSTRING(string FROM start):从 start 开始到末尾
- SUBSTRING(string FROM pattern):使用正则提取匹配部分
示例:
-- 截取第 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 个字符
示例:
-- 取前 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
示例:
-- 第 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。不复杂但容易忽略细节。