导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

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

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

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

...全文
316 点赞 收藏 12
写回复
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
肥龙上天 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
回复

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
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告