学习ING

sql server 实现lastIndexOf


 先移转,再查询

SELECT case when charindex('12',s) =0 then 0 else length(s)-charindex(reverse('12'),reverse(s)) end AS lastIndexOf, s FROM t; 

 

利用存储过程,一个个找:

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[lastindexof] (@stringValue as nvarchar(1000), @stringSearch as nvarchar(1000), @startPosition as int = 0)
returns int
AS
BEGIN
     DECLARE @lastindex int
     SET @lastindex= 0
     DECLARE @tempindex int
     while (1=1)
     begin
        SET @tempindex = charindex(@stringSearch, @stringValue, @lastindex + 1)
        if (@tempindex = 0)
            break
        SET @lastindex = @tempindex
     end
    
     RETURN(@lastindex)
END






 

 

posted @ 2009-11-27 19:49  祝雄锋  阅读(5845)  评论(1编辑  收藏  举报