SQL Server 常用字符串截取函数:LEFT、RIGHT 与 SUBSTRING

Leo
Leo
发布时间:2026-10-16| 5人浏览过
原创

在 SQL Server 开发中,对字符型数据进行提取和格式化是常见操作。本文深入解析 LEFT、RIGHT 和 SUBSTRING 三个函数的参数逻辑与实际返回结果,提供可直接复用的代码示例。

结果或目标

在处理数据库文本字段时,往往需要提取特定位置的子串。例如从编号左侧获取前缀,或从右侧截取文件扩展名。准确选择截取函数能避免复杂的索引计算,提高查询效率与可读性。

准备条件

  • character:可以是字符串常量(如 'abc')、列名或变量,表示待处理的源文本。
  • integer / length:必须为正整数,指定截取的字符数量或起始/长度参数。若数值过大超出原串范围,函数通常返回空或报错,需注意边界情况。
  • 环境:Microsoft SQL Server (T-SQL)。

真实操作顺序

第 1 步:使用 LEFT() 从左侧截取固定字符

目的:快速获取字符串最左边的 N 个字符。

入口与动作:调用 LEFT(character, integer) 函数。

  • 参数 1:character,要处理的原始字符串。
  • 参数 2:integer,指定从左边开始截取的字符个数。
  • 返回值:返回从左边起指定长度的子串。

示例:

-- 从 'SQLServer_2012' 左侧截取 3 个字符
SELECT LEFT('SQLServer_2012', 3); -- 返回: SQL

第 2 步:使用 RIGHT() 从右侧截取固定字符

目的:快速获取字符串最右边的 N 个字符,常用于处理后缀或尾部编码。

入口与动作:调用 RIGHT(character, integer) 函数。

  • 参数 1:character,要处理的原始字符串。
  • 参数 2:integer,指定从右边开始截取的字符个数。
  • 返回值:返回从右边起指定长度的子串。

示例:

-- 从 'SQLServer_2012' 右侧截取 4 个字符
SELECT RIGHT('SQLServer_2012', 4); -- 返回: 2012

第 3 步:使用 SUBSTRING() 进行精确区间截取

目的:当需要根据中间某一点开始提取固定长度字符时使用。这是最常用的灵活截取方式。

入口与动作:调用 SUBSTRING(character, start, length) 函数。

  • 参数 1:character,原始字符串。
  • 参数 2:start,起始下标。注意:在 SQL Server 中,下标从 1 开始,而非编程常见的 0。
  • 参数 3:length,要截取的字符总长度。
  • 返回值:返回从指定位置开始、指定长度的子串。

示例:

-- 从 'SQLServer_2012' 的第 4 位开始,截取 6 个字符
SELECT SUBSTRING('SQLServer_2012', 4, 6); -- 返回: Server

综合示例与验证

以下语句展示了三种函数在同一字符串上的不同表现,可用于测试理解:

-- 演示完整操作效果
SELECT 
    LEFT('my name is kevin', 4) AS Result_Left,   -- 结果: my n
    RIGHT('my name is kevin', 4) AS Result_Right, -- 结果: vin
    SUBSTRING('my name is kevin', 4, 6) AS Result_Sub; -- 结果: me is

执行上述查询后的结果对比:

完成判断

当 SELECT 返回的列值符合预期切片长度且内容准确时,即证明函数使用正确。建议在复杂表达式中结合 LEN() 函数检查剩余字符,以防越界异常。

简要总结

LEFT 和 RIGHT 适合处理两端固定长度的简单提取,而 SUBSTRING 提供了基于位置和大小的灵活控制。掌握这三者的参数差异(特别是 SUBSTRING 的 1-based 索引),即可应对大多数 SQL 字符串截取场景。以上就是 SQL Server 中常用截取字符串函数(LEFT、RIGHT、SUBSTRING)的详细内容,更多关于 T-SQL 数据处理技巧的资料请关注本站其它相关文章!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。