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ある、と私は両方の値を表示したいと言います関数からのストアドプロシージャ。たとえば、上記のように出力の代わりに1つの出力のみを表示することができます。これをどうすれば解決できますか?インナーはON文を持っていないジョインとして戻り複数の値 - SQL Serverの
に参照するためのフィールドを持っているかどうかに応じて、JOIN INNERかもしれません。ユーザ定義関数から複数の値を返す場合は、テーブルを返す必要があります。 –
また、コードでコンパイルエラー – tungula
が表示されます。次に、代わりに複数の値を返す必要がありますか? いいえ、コードは私にコンパイルエラーを与えません。単一の値のみを返します –