當我選擇我的數據時,我可以做一個簡單的連接來解析一些列的值,但不是全部。我的大多數列都有一個數據值,如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,其中包含逗號分隔的值列表,而不是表格,以便按需使用。 –