日期:2014-05-18  浏览次数:20449 次

SQL里有没有InstrRev类似的函数,或者有没有从字符末尾开始查找某个字符的函数?
如题:SQL里有没有InstrRev类似的函数,或者有没有从字符末尾开始查找某个字符的函数?

------解决方案--------------------
Reserve() & Charindex()
------解决方案--------------------
--没有,不过可以用其他函数代替,如
REVERSE 先进行字符串的反转,如何用查找字符串,如PATINDEX 等

------解决方案--------------------
用Reverse()把字符串反转,然后用Charindex()从头开始匹配。

如 charindex(字符,reverse(字符串))
------解决方案--------------------
select reverse( 'abc ')

==> cba

select charindex( 'c ', 'abcd ')

==> 3

-----
結合2個函數就可以了
------解决方案--------------------
如过要确定出现的位置: len(字符串)-charindex(字符,reverse(字符串))

------解决方案--------------------

select charindex( 's ',reverse( 's124sf '))
------解决方案--------------------
SQL中沒有這樣直接的函數,要用charindex 和 reverse 一起使用才有這個功能
------解决方案--------------------
-- 示例
DECLARE
@Source varchar(1000),
@Search varchar(100)
SELECT
@Source = 'AB1231ABCCABC ',
@Search = 'AB '

SELECT
最后一个匹配 = LEN(@Source) - CHARINDEX(REVERSE(@Search), REVERSE(@Source))

------解决方案--------------------
select * from tb where charindex( '某个字符 ',reverse( '字符串 ')) > 0