编写计算n! (n=20) 的SQL语句,并显示计算结果。就是一个累加

解决方案 »

  1.   


    declare @i int,@result bigint 
    set @i=1 
    set @result=1 
    while @i<=20 
    begin 
    set @result=@result*@i 
    set @i=@i+1 
    end 
    print @result /*
    2432902008176640000
    */
      

  2.   

    SELECT SUM(NUMBER) FROM MASTER..SPT_VALUES WHERE TYPE='P' AND NUMBER<=20
    --20
      

  3.   

    DECLARE @I BIGINT
    SELECT @I=ISNULL(@I,1)*NUMBER FROM MASTER..SPT_VALUES WHERE TYPE='P' AND NUMBER BETWEEN 1 AND 20
    SELECT @I
    --2432902008176640000
      

  4.   


    --这个是正确的!
    DECLARE @I BIGINT
    SELECT @I=ISNULL(@I,1)*NUMBER FROM MASTER..SPT_VALUES WHERE TYPE='P' AND NUMBER BETWEEN 1 AND 20
    SELECT @I