SQL Mid() 函数
SQL SUBSTRING() 函数(和 MID())
Section titled “SQL SUBSTRING() 函数(和 MID())”从文本中提取子字符串
Section titled “从文本中提取子字符串”SUBSTRING() 函数是标准的 SQL 方法,用于从文本字段中提取字符串的一部分(即子字符串)。一些数据库系统,如 MySQL 和 MS Access,也提供 MID() 作为等效或类似的函数。
SQL SUBSTRING() 语法
Section titled “SQL SUBSTRING() 语法”SELECT SUBSTRING(string_column, start_position, length) AS alias_name FROM table_name;
| 参数 | 描述 |
|---|---|
| string_column | 必需。包含要从中提取文本的列或字符串字面量。 |
| start_position | 必需。一个整数,指定提取的起始位置。字符串中的第一个字符位置为 1。 |
| length | 必需(在标准 SQL 中,尽管某些方言中是可选的)。要提取的字符数。如果在允许省略的方言中省略,通常会提取到字符串的末尾。 |
关于 MID() 的注意事项:
如果您使用的是 MySQL 或 MS Access,也可以使用 MID():
SELECT MID(column_name, start_position, length) AS alias_name FROM table_name;
为了在不同的 SQL 数据库系统之间保持可移植性,通常首选使用 SUBSTRING()。
演示数据库:Northwind
Section titled “演示数据库:Northwind”我们将使用 Northwind 示例数据库。考虑 “Customers” 表:
| CustomerID | CustomerName | City |
|---|---|---|
| 1 | Alfreds Futterkiste | Berlin |
| 2 | Ana Trujillo Emparedados y helados | México D.F. |
| 3 | Antonio Moreno Taquería | México D.F. |
| 4 | Around the Horn | London |
| 5 | Berglunds snabbköp | Luleå |
| … |
SQL SUBSTRING() / MID() 示例
Section titled “SQL SUBSTRING() / MID() 示例”以下 SQL 语句从 “Customers” 表的 “City” 列中提取前四个字符:
使用 SUBSTRING()(标准):
Section titled “使用 SUBSTRING()(标准):”SELECT SUBSTRING(City, 1, 4) AS ShortCityFROM Customers;使用 MID()(例如,用于 MySQL):
Section titled “使用 MID()(例如,用于 MySQL):”SELECT MID(City, 1, 4) AS ShortCityFROM Customers;两个查询的结果(前几行):
ShortCity
Section titled “ShortCity”Berl Méxi Méxi Lond Lule …
实际应用:
提取字符串的一部分在以下场景中很有用:
- 生成缩写或代码。
- 解析以固定格式存储在单个字符串中的数据(例如,从 YYYYMMDD 日期字符串中提取年份)。
- 数据清洗和转换任务。
对于更高级的字符串操作,请探索您的特定 SQL 方言中提供的函数,如 LEFT()、RIGHT()、LENGTH()、CHARINDEX() 或 POSITION() 以及 REPLACE()。