0

私はストアドプロシージャが初めてです。

1 つの変数で列の値を取得し、If ブロックでチェックしています。

このための私のコードは次のとおりです。

  create proc billRet 
as 
BEGIN
DECLARE @amt float
set @amt=select amount from bill where Id='2425'
If (@amt>1100.50 )
Begin
select @amt
print 'Amount greater '+@amt;
END
Else
Begin
select @amt
print 'Amount Smaller'+@amt
END
END
Go

printステートメントと@amt変数の宣言でエラーが表示されます。

私が間違っているところを教えてください。

私を助けてください。

4

2 に答える 2

2

タイプは変数名の後に来ます:

DECLARE @amt float;

印刷を機能させるには、手動で文字列に変換して連結する必要があります。

print 'Amount greater ' + CONVERT(varchar(20),@amt);

CONVERT(またはを実行しない場合CAST、SQL Server は文字列を a に変換しfloat、2 つを加算しようとします)

また、おそらく欲しい:

select @amt=amount from bill where Id='2425'
于 2013-05-16T08:25:14.570 に答える
1

これを試して、

SET @amt = (select amount from bill where Id='2425')

この、

print 'Amount greater ' + CAST(@amt AS VARCHAR(50));
于 2013-05-16T08:23:40.820 に答える