答案:SQL中截取字符串常用SUBSTRING或SUBSTR函数,语法为SUBSTRING(字符串, 起始位置, 长度),起始位置从1开始,长度可选;MySQL、PostgreSQL、SQL Server用SUBSTRING,Oracle和SQLite用SUBSTR;可结合CHARINDEX或INSTR提取特定内容,如邮箱用户名或文件扩展名。

在 SQL 中截取字符串通常使用 SUBSTRING 函数,也叫 SUBSTR(取决于数据库系统)。这个函数可以从一个字符串中提取指定位置和长度的子串。
SUBSTRING 函数基本语法
大多数数据库支持以下格式:
SUBSTRING(字符串, 起始位置, 长度)- 字符串:要截取的源字符串,可以是字段名或字符串常量
- 起始位置:从第几个字符开始(注意:多数数据库从 1 开始计数)
- 长度:要截取多少个字符(可选,省略时截取到末尾)
不同数据库中的用法示例
MySQL / PostgreSQL / SQL Server (2012+):
-- 截取 'Hello World' 的第7个字符开始的5个字符 → 'World'SELECT SUBSTRING('Hello World', 7, 5);
-- 从第2个字符截取到末尾 → 'ello World'
SELECT SUBSTRING('Hello World', 2);
Oracle: 使用 SUBSTR
SELECT SUBSTR('Hello World', 7, 5) FROM DUAL;
SQLite: 同样支持 SUBSTR 或 SUBSTRING
SELECT SUBSTR('Hello World', 7, 5);实用技巧
你可以结合其他函数灵活使用:
- 用 CHARINDEX(SQL Server)或 INSTR(Oracle/MySQL)找分隔符位置,再截取
- 从邮箱中提取用户名:
SELECT SUBSTRING(email, 1, CHARINDEX('@', email) - 1) - 提取文件扩展名(假设字段为 filename):
SELECT SUBSTRING(filename, LEN(filename) - 3, 4)
基本上就这些,不同数据库略有差异,但核心思路一致。










