📜  SQL Server 中的 SUBSTRING()函数(1)

📅  最后修改于: 2023-12-03 14:47:35.914000             🧑  作者: Mango

SQL Server 中的 SUBSTRING()函数

SUBSTRING()函数是在SQL Server中用于提取文本字符串的一部分的函数。这在某些情况下非常有用,例如需要从一个长的文本字符串中提取一部分的情况。

语法
SUBSTRING ( expression, start, length )

其中,参数的解释如下:

  • expression:需要提取子字符串的文本字符串或字符串列。
  • start:子字符串在expression中的起始位置。位置从1开始计算。
  • length:需要提取的子字符串的长度。
示例

假设有如下employees表:

| ID | FName | LName | BirthDate | |---|---|---|---| | 1 | John | Smith | 1970-01-01 | | 2 | Mary | Johnson | 1980-02-02 | | 3 | Robert | Brown | 1969-03-03 |

示例1:提取一部分文本

假设需要提取employees表中所有员工名的第一个字符。

SELECT SUBSTRING(FName, 1, 1) as FirstChar
FROM employees

返回结果:

| FirstChar | |---| | J | | M | | R |

示例2:提取手机号中的区号

假设有一列MobileNumbers,其中储存的是手机号,如+86 13800138000,需要提取其中的区号。

SELECT SUBSTRING(MobileNumber, 3, 2) as Prefix
FROM MobileNumbers

返回结果:

| Prefix | |---| | 86 |

示例3:提取邮箱中的用户名

假设有一列Emails,其中储存的是邮箱地址,如test@test.com,需要提取其中的用户名。

SELECT SUBSTRING(Email, 1, CHARINDEX('@', Email) - 1) as UserName
FROM Emails

返回结果:

| UserName | |---| | test |

注意事项
  • 如果省略length参数,将返回从start位置到字符串末尾的所有字符。
  • 如果start参数大于字符串的实际长度,SUBSTRING()函数将返回一个空字符串。
  • 如果start参数小于1,那么SUBSTRING()函数将从字符串的第一个字符开始提取子字符串。
  • 如果length参数是一个负数,将返回一个空字符串。