SQL Server 字符串截取函数详解:LEFT、RIGHT、SUBSTRING
在 SQL Server 中,字符串处理是非常常见的操作。最基本也最常用的三个截取函数就是 LEFT()、RIGHT() 和 SUBSTRING()。它们分别从不同方向截取字符串的指定长度内容,是日常开发中不可或缺的字符串工具。
一、LEFT() 从左侧截取
语法:
LEFT(字符串, 截取长度)
说明:
从字符串左边开始,返回指定数量的字符。
示例:
SELECT LEFT('SQLSERVER_2008', 3);
返回:
SQL
LEFT() 常用于提取字符串的前缀内容,例如年份、地区代码、编号头部等。
二、RIGHT() 从右侧截取
语法:
RIGHT(字符串, 截取长度)
说明:
从字符串右边开始,返回指定数量的字符。
示例:
SELECT RIGHT('SQLSERVER_2008', 4);
返回:
2008
RIGHT() 通常用于获取后缀,例如编号尾号、文件扩展名、版本号等。
三、SUBSTRING() 从任意位置截取
语法:
SUBSTRING(字符串, 起始位置, 截取长度)
说明:
从任意指定位置开始往右截取固定长度的字符。
注意:SQL Server 的字符串下标从 1 开始。
示例:
SELECT SUBSTRING('SQLSERVER_2008', 1, 3);
返回:
SQL
SUBSTRING() 灵活性最高,可以用于截取字符串中间的任意部分。
四、三者对比与适用场景
| 函数 | 截取方向 | 常见用途 |
|---|---|---|
| LEFT() | 从左边开始 | 提取前缀、固定字段开头 |
| RIGHT() | 从右边开始 | 提取尾部、编号结尾 |
| SUBSTRING() | 任意位置 | 提取中段内容、复杂结构处理 |
五、组合使用示例
从字符串 “SQLSERVER_2008” 中提取 “SERVER”:
SELECT SUBSTRING('SQLSERVER_2008', 4, 6);
返回:
SERVER
对于长度不固定的字段,可以结合 CHARINDEX() 定位关键字符,再使用 SUBSTRING 动态截取内容。
六、总结
LEFT() 用于从左截取、RIGHT() 用于从右截取,而 SUBSTRING() 可以从任意位置截取。三者配合使用,可以轻松处理大多数字符串格式,是 SQL Server 字符串处理最重要的基础工具。