如何得到一排整数当中最后的那个整数
如何得到一排整数当中最后的那个整数,或者是从一个字符串中得到最后一个子字符串(子字符串用,分开)
格式(1,2,321,234,456)
此时我想得到456
------解决方案--------------------declare @a varchar(100)
set @a= '1,2,321,234,456 '
select reverse(left(reverse(@a),charindex( ', ',reverse(@a))-1))
/*
--------------------------
456
(所影响的行数为 1 行)
*/
------解决方案--------------------declare @s varchar(20)
set @s= '1,2,321,234,456 '
select right(@s,charindex( ', ',reverse(@s)+ ', ')-1)
------解决方案--------------------select reverse(left(reverse( '1,2,321,234,456 '),charindex( ', ',reverse( '1,2,321,234,456 '))-1))
------解决方案--------------------create function f_splitStr(@s varchar(8000),@split varchar(10))
returns @tb table(col varchar(100))
as
begin
declare @t table(id int identity,b bit)
insert @t select top 500 0 from syscolumns a,syscolumns b
insert @tb select substring(@s,id,charindex(@split,@s+@split,id)-id)
from @t
where id <=len(@s+ '! ') and charindex(@split,@split+@s,id)=id
return
end
go
select top 1 col from dbo.f_splitStr( '1,2,321,234,456 ', ', ') order by col desc
select top 1 col from dbo.f_splitStr( 'a,cc,afefe,aef,qq ', ', ') order by col desc
drop function f_splitStr
456
qq
------解决方案--------------------declare @s as varchar(20)
set @s = '1,2,321,234,456 '
select reverse(left(reverse(@s),charindex( ', ',reverse(@s)) - 1)) as result
result
--------------------
456
(所影响的行数为 1 行)