【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` 函数,可以更高效地处理和分析字符串数据,提升查询效率和数据可读性。