SP1
ALTER procedure [dbo].[sp1]
as
begin
DECLARE @od varchar(255)
EXEC @od =dbo.getFn
SELECT CMSA.A,CMSB.B, @OD
FROM CMSA INNER JOIN CMSB
GROUP BY CMSA.A, CMSB.B
end
FN1
ALTER FUNCTION [dbo].[getFn]()
returns varchar(255)
as
BEGIN
DECLARE @Desc1 varchar(200)
DECLARE @Desc2 varchar(200)
DECLARE c1 CURSOR FOR
SELECT CMSC.C
FROM CMSC INNER JOIN CMSB INNER JOIN CMSC
WHERE CMSC.C = "HELLO" OR CMSC.C = "GOODBYE"
GROUP BY CMSC.C
Open c1
FETCH NEXT FROM c1 INTO @Desc1
set @[email protected]
CLOSE c1
deallocate c1
Return @Desc2
end
只說了CMSC現有值是HELLO和GOODBYE了,我想同時顯示值從函數存儲過程。例如,從功能在存儲過程返回多個值 - SQL服務器
CMSA.A, CMSB.B, HELLO
CMSA.A, CMSB.B, GOODBYE
但現在,我只能夠顯示一個輸出,而不是如上所述的兩個輸出。我該如何解決這個問題?
代碼中引用無厘頭一個CROSS JOIN。如果你想從用戶定義函數返回多個值,它應該返回一個表。 –
此外,你的代碼會給你編譯錯誤 – tungula
然後,我應該如何返回多個值呢?不,該代碼不會給我任何編譯錯誤。它只返回一個值 –