SQL Server 右截取字符串的方法

什么是右截取字符串?

在SQL Server中,右截取字符串指从字符串的末尾开始截取一部分字符串。通常需要指定从哪个位置开始截取、截取多少个字符。对于需要截取特定数据时,右截取字符串就成为一种非常实用的方法。

使用RIGHT()函数进行右截取字符串

语法

RIGHT(string, length)

string代表要进行截取的字符串,length代表要截取的字符数。

例子

DECLARE @str VARCHAR(10) = 'HelloWorld'

SELECT RIGHT(@str,5) AS 'RightSubstring'

上述例子将获取从字符串"HelloWorld"的右侧开始的5个字符,“World”。

使用SUBSTRING()函数结合LEN()函数进行右截取字符串

语法

SUBSTRING(string, len(string) - length + 1, length)

其中string是要截取的字符串,length是要返回的长度,计算方式为使用len()函数计算字符串长度然后减去要截取的长度再加1。

例子

DECLARE @str VARCHAR(10) = 'HelloWorld'

SELECT SUBSTRING( @str, LEN(@str) - 4 + 1, 5) AS 'RightSubstring'

上述例子将获取从字符串"HelloWorld"的右侧开始的5个字符,“World”。

使用REVERSE()函数结合CHARINDEX()函数进行右截取字符串

语法

REVERSE(SUBSTRING(REVERSE(string), 1, CHARINDEX(reverse(search_string), reverse(string))-1))

其中string是要截取的字符串,search_string是在string中要查找的字符串,CHARINDEX()函数返回查找字符串在要截取的字符串中出现的位置。

例子

DECLARE @str VARCHAR(10) = 'HelloWorld'

SELECT REVERSE(SUBSTRING(REVERSE(@str),1,CHARINDEX(REVERSE('World'),REVERSE(@str))-1)) AS 'RightSubstring'

上述例子将获取从字符串"HelloWorld"的右侧开始的5个字符,“World”。

使用PATINDEX()函数进行右截取字符串

语法

DECLARE @str VARCHAR(10)='HelloWorld'

SELECT RIGHT(@str, PATINDEX('%World%', REVERSE(@str))-1) AS 'RightSubstring'

PATINDEX()函数返回搜索字符串的第一个位置,在这个函数中,可以使用通配符。例如,上面的例子中,使用了百分号通配符来匹配字符串“World”,但留下了一点空余。返回的长度比实际字符串长度少1位。所以在最后我们需要减去1。

总结

在使用SQL Server时,有许多方法可以实现右截取字符串。为了获取想要的结果,可以根据实际情况选用不同的方法。

数据库标签