通过函数已经成功返回如下结果
COL
1
3
4
5
6
我现在需要从另外一个表中返回ID与COL相同的结果,假设另外一表为tb
ID
1
2
3
4
5
6
7
8
该如何去做?下面贴出函数内容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' 无效。
和解???请老师们帮忙看看,非常感谢!!
COL
1
3
4
5
6
我现在需要从另外一个表中返回ID与COL相同的结果,假设另外一表为tb
ID
1
2
3
4
5
6
7
8
该如何去做?下面贴出函数内容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' 无效。
和解???请老师们帮忙看看,非常感谢!!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货