以上手误  
hr_spec表中的spec_id字段类型应该是char

解决方案 »

  1.   

    ALTER FUNCTION dbo.f_str(@value varchar(20))
    RETURNS varchar(100)
    AS
    BEGIN set @vale = rtrim(@value) --> 删除右空格
    DECLARE @re varchar(100)
    SET @re=''
    SELECT @re=@re+','+rtrim(spec_name) --> 删除右空格
    FROM hr_spec
    WHERE charindex(','+spec_id+',',','+@value+',')>0
    RETURN(STUFF(@re,1,1,''))END
      

  2.   

    ALTER FUNCTION dbo.f_str(@value varchar(20))
    RETURNS varchar(100)
    AS
    BEGIN set @value = ltrim(rtrim(@value))
    DECLARE @re varchar(100)
    SET @re=''
    SELECT @re=@re+','+ltrim(rtrim(spec_name))
    FROM hr_spec
    WHERE charindex(','+ltrim(rtrim(spec_id))+',',','+@value+',')>0
    RETURN(STUFF(@re,1,1,''))END
      

  3.   

    楼上的朋友,我这样改了,但还是不行,查出来p_spec1字段全为NULL,不知道怎么回事啊。