不知道如何调用我的功能

时间:2014-07-08 17:31:48

标签: tsql sql-server-2008-r2

当我选择我的数据时,我可以进行简单的连接来解析某些列的值,但不是全部。我的大多数列都有一个数据值,如10997,但其他列有多个数据值,如10997,10889,10123。我创建了一个函数来解析我需要的文本中的三个单独的值,但我有试图找出如何使用它的麻烦。

我有一个像这样的基本联接:

SELECT COLUMN1, COLUMN2, COLUMN3
FROM TABLE1 A
JOIN TABLE2 B ON A.ID = B.ID

结果如下:

Column1         Column2                     Column3
    1       11272, 11273, 11274, 11277          7712

我创建的函数使用声明的变量和表变量。

我希望能做的事情是这样的:

SELECT COLUMN1, dbo.MyFunction(COLUMN2), COLUMN3
FROM TABLE1 A
JOIN TABLE2 B ON A.ID = B.ID

导致:

Column1         Column2                     Column3
    1       Radio, Flyer, Internet, Bar         7712

问题是我的函数使用变量,我无法找到将它放在SQL中的位置(表值函数,存储过程等),所以我可以使用它我喜欢的方式。每个区域都有自己的限制。

编辑:这是我为我的函数创建的代码,目前它是一个多语句表值函数

DECLARE @looper INT, @res VARCHAR(100)
DECLARE @outList VARCHAR(300) 

SET @outList = ''

DECLARE @tmpa TABLE (Item INT)

INSERT INTO @tmpa
SELECT Item
FROM fn_Split (', ', @input)

SELECT @looper = MIN(Item)
FROM @tmpa

WHILE @looper IS NOT NULL
    BEGIN
        SELECT @res = NAME
        FROM FSM_CustomFormSelectOptions CFSO
        WHERE ID = @looper
        --print @res
        SET @outList = @outList + @res + ', '

        SELECT @looper = MIN(Item) FROM @tmpa WHERE Item > @looper
    END

    SET @outList = LEFT(@outList, LEN(@outList)-1)

    INSERT INTO @Answers
    VALUES(@outList)

    RETURN 

示例电话是:

select * from fn_GetAnswerText( '11273, 11274, 11275')

1 个答案:

答案 0 :(得分:0)

你没有归还任何东西

RETURN @outList