【SQL中LEFT】在SQL中,`LEFT` 是一个常用的字符串函数,用于从字符串的左侧开始提取指定数量的字符。它在处理文本数据时非常有用,特别是在需要截取部分字段内容或进行数据清洗时。
以下是对 `LEFT` 函数的总结,并结合示例展示其用法。
一、LEFT 函数简介
| 参数 | 说明 | 
| `string` | 要从中提取字符的原始字符串 | 
| `length` | 要提取的字符数 | 
语法:
```sql
LEFT(string, length)
```
该函数返回从字符串左边开始的 `length` 个字符。如果 `length` 大于字符串长度,则返回整个字符串。
二、LEFT 函数使用示例
| 示例 | 输出 | 
| `LEFT('Hello World', 5)` | `'Hello'` | 
| `LEFT('SQL Tutorial', 3)` | `'SQL'` | 
| `LEFT('Database', 10)` | `'Database'`(长度不足,返回全部) | 
| `LEFT('1234567890', 4)` | `'1234'` | 
| `LEFT('abc', 0)` | `''`(空字符串) | 
三、LEFT 与 RIGHT 的对比
| 函数 | 功能 | 示例 | 
| `LEFT` | 从左侧提取字符 | `LEFT('Example', 3) = 'Exa'` | 
| `RIGHT` | 从右侧提取字符 | `RIGHT('Example', 3) = 'ple'` | 
四、适用数据库系统
| 数据库 | 支持 LEFT 吗? | 说明 | 
| MySQL | ✅ | 使用 `LEFT()` | 
| PostgreSQL | ✅ | 使用 `LEFT()` | 
| SQL Server | ✅ | 使用 `LEFT()` | 
| Oracle | ❌ | 使用 `SUBSTR()` 替代 | 
| SQLite | ✅ | 使用 `LEFT()` | 
五、常见应用场景
1. 截取邮箱前缀
```sql
SELECT LEFT(email, CHARINDEX('@', email) - 1) AS username FROM users;
```
2. 提取电话号码区号
```sql
SELECT LEFT(phone, 3) AS area_code FROM contacts;
```
3. 生成简略标题
```sql
SELECT LEFT(title, 20) AS short_title FROM articles;
```
六、注意事项
- `LEFT` 不会修改原始数据,只是返回一个子字符串。
- 如果输入为 `NULL`,结果也将是 `NULL`。
- 在某些数据库中,如 Oracle,需使用 `SUBSTR` 实现类似功能。
通过合理使用 `LEFT` 函数,可以更高效地处理和分析字符串数据,提升查询效率和数据可读性。
 
                            

