情况:已通过函数实现所需要的结果!结果为
COL
12
45
78
89现要求从另外一表中[此表包含了col下]取出与COL相同的结果
通过一个函数得到的结果 如何去跟一个存在的表进行 inner join ?
以下是函数内容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
调用上面函数得到了
col
1
3
4
5
6
个结果,如何冲另外一个表,假设为 xx
id
1
2
3
4
5
6
7
8
中取出id和col相同的 结果

解决方案 »

  1.   

    select * from xx,[dbo].[LewiSplitID] a where xx.id = a.col
      

  2.   


    对象名 'dbo.LewiSplitID' 无效。
      

  3.   

    /* Result : "对象名 'dbo.LewiSplitID' 无效。3 rows fetched (234 ms)" */
      

  4.   


    SELECT * From xxx C INNER JOIN dbo.LewiSplitID D ON C.ID=D.COL 
    也不行,为何?/* Result : "对象名 'dbo.LewiSplitID' 无效。 3 rows fetched (234 ms)" */