sql sever字符串截取函数
时间: 2025-07-04 18:47:56 浏览: 1
### SQL Server 字符串截取函数及其使用方法
在 SQL Server 中,字符串截取是一个非常重要的功能,主要用于提取字符串的特定部分。以下是常用的字符串截取函数以及它们的具体用法:
#### 1. `SUBSTRING` 函数
`SUBSTRING` 是最通用的字符串截取函数,可以从指定位置开始截取一定长度的子字符串。
语法如下:
```sql
SUBSTRING(expression, start, length)
```
- **expression**: 要从中提取子字符串的目标字符串。
- **start**: 子字符串起始位置(第一个字符的位置为 1)。
- **length**: 截取的字符数量。
示例:
```sql
SELECT SUBSTRING('HelloWorld', 1, 5); -- 返回 'Hello'
SELECT SUBSTRING('HelloWorld', 6, 5); -- 返回 'World'
```
此函数适用于多种场景,比如从固定格式的数据中提取部分内容[^3]。
---
#### 2. `LEFT` 函数
`LEFT` 函数用于从字符串左侧开始截取指定数量的字符。
语法如下:
```sql
LEFT(expression, length)
```
- **expression**: 目标字符串。
- **length**: 截取的字符数量。
示例:
```sql
SELECT LEFT('HelloWorld', 5); -- 返回 'Hello'
```
该函数常用于获取字符串开头的部分内容,例如提取日期时间字段中的年份或月份[^4]。
---
#### 3. `RIGHT` 函数
`RIGHT` 函数是从字符串右侧开始截取指定数量的字符。
语法如下:
```sql
RIGHT(expression, length)
```
- **expression**: 目标字符串。
- **length**: 截取的字符数量。
示例:
```sql
SELECT RIGHT('HelloWorld', 5); -- 返回 'World'
```
它通常被用来处理需要从字符串末尾提取信息的情况,如文件扩展名或其他后缀数据[^4]。
---
#### 实际应用场景举例
假设有一张名为 `Employee` 的表格,其中包含员工的名字和姓氏组合成的一个字段 `FullName`,现在需要分别提取名字和姓氏。
| FullName |
|----------------|
| John Smith |
| Jane Doe |
可以使用以下查询来分离名字和姓氏:
```sql
-- 提取名字
SELECT LEFT(FullName, CHARINDEX(' ', FullName) - 1) AS FirstName FROM Employee;
-- 提取姓氏
SELECT RIGHT(FullName, LEN(FullName) - CHARINDEX(' ', FullName)) AS LastName FROM Employee;
```
以上例子展示了如何利用这些函数完成复杂的字符串分割任务[^2]。
---
#### 注意事项
- 如果尝试访问超出范围的索引,则会返回 NULL 或者抛出错误,具体取决于上下文环境。
- 当处理 Unicode 数据时,请确保输入参数类型匹配以避免潜在转换问题。
通过合理运用上述三种基本函数 (`SUBSTRING`, `LEFT`, 和 `RIGHT`) 可满足大部分日常工作中遇到的各种字符串操作需求。
阅读全文
相关推荐



















