DECLARE @i int,@sum int,@csum char(10)
SELECT @i=1,@sum=1
WHILE @i<=20
BEGIN
SELECT @sum=@sum*@i
SELECT @i=@i+1
END
SELECT @csum=convert(char(10),@sum)
PRINT '1*2*3*4*…*20='+@sum
这是SQL里的语句
请高手帮我修改下啊 谢谢拉
參考答案:DECLARE @i int,@sum bigint,@csum varchar(50)
SELECT @i=1,@sum=1
WHILE @i<=20
BEGIN
SELECT @sum=@sum*@i
SELECT @i=@i+1
END
SELECT @csum=convert(varchar(50),@sum)
PRINT '1*2*3*4*…*20='+@csum
酱紫写就行了,
其中共改了三处,
一、将"@sum int"改为"@sum bigint"
因为得出的结果已超出int型的范围,故用bigint来定义@sum
二、将"@csum char(10)"改为"@csum varchar(50)"
因为我们不知道得出的结果有几位,所以写的大一点50,但是直接使用char(50)这样,既使得出的结果只有20位,但还要占用50个字节,浪费空间,所以使用varchar(50),这样所占用的内存存储大小是输入数据的实际长度加 2 个字节,省空间。
三、将"PRINT '1*2*3*4*…*20='+@sum"改为"PRINT '1*2*3*4*…*20='+@csum"
这个只是你马虎了!!!
还有问题,请加QQ:***********