mssql 取后面的解决方案

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函数返回一个字符串的指定部分。在取一个字符串的后面一部分时,应该选择正确的函数,避免结果出错。

数据库标签