0

我是存储过程的新手。

我在一个变量中获取列的值并使用 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

它向我显示了打印语句和@amt 变量声明的错误。

请告诉我我在哪里犯错。

请帮我。

4

2 回答 2

2

类型在变量名之后:

DECLARE @amt float;

您必须手动转换为字符串并连接才能使打印工作:

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

(如果您不执行CONVERTor a CAST,则 SQL Server 将尝试将字符串转换为 afloat并将两者相加)

也可能想要:

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 回答