SQL Server 常用字符串截取函数:LEFT、RIGHT 与 SUBSTRING
在 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 数据处理技巧的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













