📅  最后修改于: 2023-12-03 14:47:35.914000             🧑  作者: Mango
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 |
假设需要提取employees
表中所有员工名的第一个字符。
SELECT SUBSTRING(FName, 1, 1) as FirstChar
FROM employees
返回结果:
| FirstChar | |---| | J | | M | | R |
假设有一列MobileNumbers
,其中储存的是手机号,如+86 13800138000
,需要提取其中的区号。
SELECT SUBSTRING(MobileNumber, 3, 2) as Prefix
FROM MobileNumbers
返回结果:
| Prefix | |---| | 86 |
假设有一列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
参数是一个负数,将返回一个空字符串。