通过函数已经成功返回如下结果
COL





我现在需要从另外一个表中返回ID与COL相同的结果,假设另外一表为tb
ID








该如何去做?下面贴出函数内容CREATE 
  FUNCTION [dbo].[LewiSplitID](@String NVARCHAR(4000), @SplitChar NVARCHAR(10))
  RETURNS @table TABLE (COL VARCHAR (100)) AS  
BEGIN  
   DECLARE  @Index  INT  
   SET  @Index  =  0  
        IF @String <> ''
        BEGIN            
            IF RIGHT(@String,1)<> @SplitChar 
            SET @String = @String + @SplitChar
            IF LEFT(@String,1)= @SplitChar 
            SET @String = STUFF(@String, 1, 1, '')
        End
       WHILE  CHARINDEX(@SplitChar,@String,@Index)  >  0    
       BEGIN  
           INSERT INTO @table(COL) 
           VALUES (SUBSTRING(@String, @Index, CHARINDEX(@SplitChar, @String,@Index) - @Index))
           SET @index = CHARINDEX(@SplitChar, @String, @Index) + 1 
       END  
RETURN  
END尝试一SELECT * From tb C INNER JOIN dbo.LewiSplitID D ON C.ID=D.COL提示对象名 'dbo.LewiSplitID' 无效。尝试二SELECT * FROM tb,dob.LewiSplitID a WHERE tb.ID = a.COL同样提示对象名'dbo.LewiSplitID' 无效。
和解???请老师们帮忙看看,非常感谢!!

解决方案 »

  1.   

    SELECT * From tb C INNER JOIN dbo.LewiSplitID(参数1,参数2) D ON C.ID=D.COL 
      

  2.   

    SELECT * From tb C INNER JOIN dbo.LewiSplitID(参数列表) D ON C.ID=D.COL
      

  3.   

    这几天我看你老是弄这个字符拆分的问题,看来你是选用了函数来解决问题。纯粹建议:2000不支持apply,用函数只能用游标一条一条的分拆。不如一个存储过程,用临时表的分拆方法,一次性分拆完毕,再调用存储过程的结果集,这样效率会高很多。函数保留,分拆单条数据时用。