fun(s,s1)传入参数2个:
例 s=edts1$2|edts2$1|edts3$2|edts4$21|edts5$12|edts6$21|edts7$12
s1=edts1 
则返回2
s1=edts2
则返回1
s1=edts5 
则返回12

解决方案 »

  1.   

    CREATE FUNCTION dbo.fn_GetValue(@s VARCHAR(8000),@s1 VARCHAR(100))
        RETURNS VARCHAR(50)
    AS
    BEGIN
    DECLARE @re VARCHAR(50);
    DECLARE @index INT;
    SET @index = CHARINDEX(@s1,@s); IF @index > 0
      BEGIN
      SET @re = SUBSTRING(@s,@index,CHARINDEX('|',@s + '|',@index) - @index)
      END  IF @re <> ''
    SET @re = RIGHT(@re,CHARINDEX('$',REVERSE(@re))-1); RETURN @re;
    END
    GOSELECT dbo.fn_GetValue('edts1$2|edts2$1|edts3$2|edts4$21|edts5$12|edts6$21|edts7$12',
                           'edts1');GO
    DROP FUNCTION dbo.fn_GetValue