日期:2014-05-18 浏览次数:20592 次
create function [dbo].[f_split](@c varchar(512),@split varchar(2))
returns @t table(col varchar(16))
as
begin
while(charindex(@split,@c)<>0)
begin
insert @t(col) values (substring(@c,1,charindex(@split,@c)-1))
set @c = stuff(@c,1,charindex(@split,@c),'')
end
insert @t(col) values (@c)
return
------解决方案--------------------
declare @str varchar(20)
set @str='A-2012-06-13-111'
select right(@str,charindex('-',REVERSE(@str))-1) as value
/*
value
---------
111
*/
------解决方案--------------------
把字符串反转(用reverse函数),然后用 结合 substring 、charindex 函数取到值,最后再将该值反转(用reverse函数) 就是你想要得到的值。
类似: select reverse(substring(reverse('A-2012-06-13-2'),1,CHARINDEX('-',reverse('A-2012-06-13-2'))-1))
/*
(无列名)
2
*/