1. 前言
Microsoft SQL Server(简称MSSQL)是Microsoft开发的关系型数据库管理系统,它的语言是T-SQL(Transact-SQL)。在MSSQL中,我们经常需要使用到字符串截取函数SUBSTRING来取出字符串的一部分。本文将重点讲解如何在MSSQL中取一个字符串的后面的内容。
2. 取后面的内容的函数
MSSQL提供了两个取后面的内容的函数:
2.1 RIGHT函数
RIGHT函数返回一个字符串的右边指定数量的字符。它的语法如下:
RIGHT (string, length)
其中,string是要截取的字符串,length是要返回的字符的数量。如果length小于或等于0,则返回空字符串。如果length大于字符串的长度,则返回整个字符串。
例如,我们有一个字符串“Hello World”,我们想要取出它后面的4个字符,可以使用以下代码:
SELECT RIGHT('Hello World', 4)
代码运行结果为:
orld
如果我们想要取出一个表格中某列的后面3个字符,可以使用以下代码:
SELECT RIGHT(column_name, 3) FROM table_name
2.2 SUBSTRING函数
SUBSTRING函数返回一个字符串的指定部分。它的语法如下:
SUBSTRING (string, start, length)
其中,string是要截取的字符串,start是开始截取的位置,length是要返回的字符的数量。如果start小于0,则从字符串的第一个字符开始截取。如果length小于或等于0,则返回空字符串。如果length大于字符串从start开始到字符串的末尾的长度,则返回从start开始到字符串的末尾的所有字符。
例如,我们有一个字符串“Hello World”,我们想要取出它后面的4个字符,可以使用以下代码:
SELECT SUBSTRING('Hello World', 8, 4)
代码运行结果为:
orld
如果我们想要取出一个表格中某列的后面3个字符,可以使用以下代码:
SELECT SUBSTRING(column_name, len(column_name) - 2, 3) FROM table_name
其中,len(column_name) - 2表示从字符串的倒数第三个字符开始截取,3表示要返回的字符的数量。
3. 示例
现在我们假设有一个表格,它包含以下列:
列名 | 数据类型 |
---|---|
id | int |
name | varchar(50) |
我们有以下数据:
id | name |
---|---|
1 | Tom |
2 | Jack |
3 | Lucy |
现在我们想要取出每个名字的后面两个字符。我们可以使用以下代码:
SELECT RIGHT(name, 2) FROM table_name
代码运行结果为:
m
ck
cy
我们发现结果是错误的,因为RIGHT函数返回的是字符串的右边指定数量的字符。由于只有Lucy的名字长度大于或等于2,因此Lucy的名字的后面两个字符是cy。而对于Tom和Jack,由于它们的名字长度小于2,因此RIGHT函数返回空字符串“”。
正确的代码应该使用SUBSTRING函数,如下所示:
SELECT SUBSTRING(name, len(name) - 1, 2) FROM table_name
代码运行结果为:
om
ck
cy
现在我们取出了每个名字的后面两个字符,结果是正确的。
4. 总结
MSSQL提供了两个取后面的内容的函数:RIGHT和SUBSTRING。RIGHT函数返回一个字符串的右边指定数量的字符,而SUBSTRING函数返回一个字符串的指定部分。在取一个字符串的后面一部分时,应该选择正确的函数,避免结果出错。