如何取得字符在字符串中最后一次出现的位置.

sfmcepwq 2008-01-05 11:09:16
在 sql server 2005的db环境中.

如何取得:字符 b 在字符串 abcefbpqbe 中最后一次出现的位置.
有什么函数可以取得这个位置吗?

...全文
457 12 打赏 收藏 举报
写回复
12 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
肥龙上天 2009-01-20
  • 打赏
  • 举报
回复
同意1,3,9楼主
wanshichen 2009-01-20
  • 打赏
  • 举报
回复
同意1楼答案……
brio8425 2009-01-20
  • 打赏
  • 举报
回复
REVERSE......
sa0811 2009-01-19
  • 打赏
  • 举报
回复
CSDN上确实强人的多啊
我从google连接到这,终于找到问题的解决办法了..
谢谢了
ChinaJiaBing 2009-01-19
  • 打赏
  • 举报
回复

declare @b nvarchar(10)
set @b='abcefbpqbe'
select len(@b)- charindex('b',REVERSE(@b))+1
wg961423 2009-01-19
  • 打赏
  • 举报
回复
先倒过来,取第一次的值,再用整个长度减一下。
guangguang2007 2009-01-19
  • 打赏
  • 举报
回复
3楼的明了。。
dobear_0922 2008-01-05
  • 打赏
  • 举报
回复
看看钻钻,,,
dawugui 2008-01-05
  • 打赏
  • 举报
回复
单个字符可以用我这个,多个的得用邹老大那个.
dawugui 2008-01-05
  • 打赏
  • 举报
回复
declare @s as varchar(20)
set @s = 'abcefbpqbe'

select 最后一次出现的位置 = len(@s) - charindex('b' , reverse(@s)) + 1

/*
最后一次出现的位置
-----------
9

(1 行受影响)
*/
wzy_love_sly 2008-01-05
  • 打赏
  • 举报
回复
declare @tb table (id varchar(20))
insert into @tb select 'abcefbpqbe'

select len(id)-charindex('b',REVERSE(id))+1 from @tb
zjcxc 元老 2008-01-05
  • 打赏
  • 举报
回复

DECLARE
@str varchar(8000),
@search_str varchar(10)

SELECT
@str = 'abcefbpqbbpe',
@search_str = 'bp'

SELECT
CASE
WHEN CHARINDEX(@search_str, @str) = 0 THEN 0
ELSE LEN(@str) - CHARINDEX(REVERSE(@search_str), REVERSE(@str)) - LEN(@search_str) + 2
END
相关推荐
发帖
MS-SQL Server

3.4w+

社区成员

MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
帖子事件
创建了帖子
2008-01-05 11:09
社区公告
暂无公告