SQL 字符串函数如何提取固定长度字符?

答案:使用SUBSTRING、LEFT或RIGHT函数提取固定长度字符。从指定位置起取固定长度,起始位置从1开始,不同数据库支持的函数名略有差异。

在 SQL 中提取固定长度字符,主要使用字符串截取函数。不同数据库的语法略有差异,但核心思路一致:从指定位置开始,取出固定长度的字符。

SUBSTRING 函数(通用方法)

大多数数据库支持 SUBSTRING() 函数,语法如下:

SUBSTRING(字符串, 起始位置, 长度)

说明:

  • 起始位置从 1 开始计数(不是 0)
  • 长度表示要提取的字符个数

示例:提取字段前 5 个字符

SELECT SUBSTRING(name, 1, 5) FROM users;

这会从 name 字段的第 1 个字符开始,取 5 个字符。

LEFT 和 RIGHT 函数(简化写法)

如果只需要从开头或结尾提取字符,可使用:

  • LEFT(字符串, 长度):从左边开始取指定长度字符
  • RIGHT(字符串, 长度):从右边开始取指定长度字符

示例:

SELECT LEFT(phone, 3), RIGHT(id_card, 4) FROM customers;

分别提取电话号码前 3 位和身份证后 4 位。

数据库差异注意事项

不同数据库对函数命名可能不同:

  • MySQL、PostgreSQL、SQL Server:用 SUBSTRING()
  • Oracle:可用 SUBSTR(),语法相同
  • SQLite:支持 SUBSTR()SUBSTRING()

例如 Oracle 写法:

SELECT SUBSTR(email, 1, 10) FROM employees; 基本上就这些。根据你的数据库类型选择对应函数,明确起始位置和长度即可准确提取固定字符。