在 SQL 2008 中获取最后一个字符索引的最佳方法是什么[重复]

问题描述 投票:0回答:3

在 C# 中,我们有

String.LastIndexOf
方法来获取给定字符串的特定字符位置的最后索引。 SQL Server 中有没有类似的函数可以做同样的事情?我尝试使用
CHARINDEX
但无法实现。

sql string sql-server-2008
3个回答
75
投票

有点棘手,但你可以这样做:

REVERSE(SUBSTRING(REVERSE([field]),0,CHARINDEX('[char]',REVERSE([field]))))

27
投票
DECLARE @x VARCHAR(32) = 'xyzxyzyyythgetdghydgsh';
SELECT LEN(@x) - CHARINDEX('y', REVERSE(@x)) + 1;

0
投票

尝试一下这个,一步一步分析结果。


declare @string varchar(max)
declare @subString varchar(max)
set @string = 'this is a duplicated question,      but may get some new answers, since tech chagne from time to time as we know';
set @subString = 'this is a duplicated question,      but may get some new answers, since tech chagne from time to time'
--Find the string.lastIndexof(time)
select LEN(@String)
select LEN(@SubString)
select CHARINDEX('time', REVERSE(@string))
select reverse(@string)
select reverse('time')
SELECT LEN(@string) - CHARINDEX(reverse('time'), REVERSE(@string)) - Len('time') + 1
© www.soinside.com 2019 - 2024. All rights reserved.