2017-07-17 23 views
0

私は関数を作成しようとしています。この関数は2つのパラメータを受け取ります。&文字列を返すようにします。カスタム関数内で複数の変数を宣言する

だから私の関数は、2つのパラメータを取ります

Paramter 1   Parameter 2 
    @CurrName   @Currency 

    SEP17 3600 CALL  GBP 
    AUG17 4000 CALL  EUR 

例えば、パラメータ1 @CurrNameは、常に私たちは気にしない3つの文字(月)と2桁あります。ご了承ください。

@FXはGBPが「UKX」と返される文字列の先頭であり、それはユーロであるならば、「SXE5」のであれば、私はこのことから欲しい出力は、このような

ようです

にしたいです

1st one ->  UKX 9 3600 
2nd one -)  SXE5 8 4000 

しかし、私は変数@tickStartを宣言しているようには思わないので、最初のビットに問題があります。「関数内に含まれるselectステートメントはクライアントにデータを返すことができません」。

CREATE FUNCTION ufOptionName 
    (
    -- Add the parameters for the function here 
    @CurrName nvarchar(30), 
    @FX nvarchar(3) 
) 
    RETURNS nvarchar(30) 
    AS 
    BEGIN 
    -- Declare the return variable here 
DECLARE @newName nvarchar(30), 
@tickStart nvarchar(10) 

select case  
    when @FX = 'EUR' then set @tickStart = 'SX5E' 
    when @FX = 'GBP' then set @tickStart = 'UKX' 
    else set @tickStart = 'US' 
end 

-- Return the result of the function 
RETURN @newName 

END 
GO 

答えて

1

使用この:

SET @tickStart = case  
    when @FX = 'EUR' then 'SX5E' 
    when @FX = 'GBP' then 'UKX' 
    else 'US' 
end 
関連する問題