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 goselect 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_splitStr456qq
declare @s as varchar(20) set @s = '1,2,321,234,456'select reverse(left(reverse(@s),charindex(',',reverse(@s)) - 1)) as resultresult -------------------- 456(所影响的行数为 1 行)
set @a='1,2,321,234,456'
select reverse(left(reverse(@a),charindex(',',reverse(@a))-1))
/*
--------------------------
456(所影响的行数为 1 行)
*/
set @s='1,2,321,234,456'select right(@s,charindex(',',reverse(@s)+',')-1)
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
goselect 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_splitStr456qq
set @s = '1,2,321,234,456'select reverse(left(reverse(@s),charindex(',',reverse(@s)) - 1)) as resultresult
--------------------
456(所影响的行数为 1 行)