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

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

在 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 相关产品和应用

全部下载

专题列表