SQL Server 中的 Substring():如何使用函数及示例
Substring() 是什么?
Substring() 是 SQL 中的一个函数,它允许用户根据需要从任何给定的字符串集合中派生子字符串。Substring() 根据输入字符串中给定的位置和指定的长度提取一个字符串。Substring() 在 SQL 中的目的是返回字符串的特定部分。
Substring() 的语法
SUBSTRING(Expression, Starting Position, Total Length)
此处,
- SQL Server 表达式中的 substring() 可以是任何字符、二进制、文本或图像。Expression 是源字符串,我们将根据需要从中获取子字符串。
- 起始位置确定了表达式中新子字符串应开始的位置。
- SQL Server substring() 的总长度是从起始位置开始,结果子字符串的预期总长度。
使用 SUBSTRING() 的规则
- MSSQL substring() 函数中的所有三个参数都是必需的。
- 如果起始位置大于表达式中的字符数,则 SQL Server 中的 substring() 函数将不返回任何内容。
- 总长度可以超过原始字符串的最大字符长度。在这种情况下,结果子字符串将是从表达式中的起始位置到表达式的最后一个字符的整个字符串。
下图说明了 SUBSTRING() 函数在 SQL Server 中的使用。
T-SQL Substring 示例
假设:假设我们有一个名为 ‘Guru99’ 的表,其中包含两列和四行,如下所示:
我们将在后续示例中使用“Guru99”表
查询 1:SQL 中的 SUBSTRING(),长度小于表达式的总最大长度
SELECT Tutorial_name, SUBSTRING(Tutorial_name,1,2) As SUB from Guru99;
结果:下图以 ‘SUB’ 列的形式显示了 ‘Tutorial_name’ 列的子字符串。
查询 2:SQL Server 中的 SUBSTRING(),长度大于表达式的总最大长度。
SELECT Tutorial_name, SUBSTRING(Tutorial_name,2,8) As SUB from Guru99;
结果:下图以 ‘SUB’ 列的形式显示了 ‘Tutorial_name’ 列的子字符串。此处尽管
子字符串长度大于表达式的总最大长度,但没有错误,查询返回了完整的字符串。
摘要
- 语法是:SUBSTRING (Expression, Starting Position, Total Length)
- 在 SQL Server 中,substr() 的所有三个参数都是必需的。
- 对于 substring() 查询,Expression 可以是任何字符、二进制、文本或图像 SQL。