当我选择我的数据时,我可以做一个简单的连接来解析一些列的值,但不是全部。我的大多数列都有一个数据值,如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')
我们该如何告诉你如何使用**你的功能** **你如果你没有提供它的代码,写**,这样我们可以看到你在问什么? –
没有那个基本连接的结果看起来不像那样。 – Paparazzi
你的功能是错误的,你想要它产生的输出。它需要返回一个VARCHAR,其中包含逗号分隔的值列表,而不是表格,以便按需使用。 –