日期:2014-05-18 浏览次数:20477 次
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 */