declare aaa table (fvalue int)
insert into aaa values (@a)
insert into aaa values (@b)
....
select max(fvalue) from aaa

解决方案 »

  1.   

    笔误,改改:
    declare @aaa table (fvalue int)
    insert into @aaa values (@a)
    insert into @aaa values (@b)
    ....
    select max(fvalue) from @aaa
      

  2.   

    我是写在Cursor中的,如果这样的话,那就必须要在循环结束之前把临时表aaa drop掉,那么在循环次数很大的时候,频繁的建表、删除表,会不会使执行效率很低,会不会加大数据库的负担呢?
      

  3.   

    declare @a int
    declare @b int
    declare @c intset @a=2
    set @b=1
    set @c=5select case 
       when @a>@b then 
           case 
              when @a>@c then @a 
              else @c 
           end 
       else 
           case 
               when @b>@c then @b 
               else @c 
           end 
    end as maxone
      

  4.   

    结果:
    maxone
    5不要写“(经搜索,无解)”
      

  5.   

    写在Cursor中的?
    是什么意思?每个循环求一次最大值吗?这个是表变量,不是临时表,过程结果自动就释放了,不需要用drop, 你可以在下一次求最大最小时,先delete from @aaa,再做上面的操作。
      

  6.   

    参数数量确定,共8个to Yang_(扬帆破浪):可以请教为什么吗to icevi(按钮工厂):多谢,那么你觉得用你上面的方法,和自定义函数,哪个更好一些?
      

  7.   

    declare @aaa table (fvalue int)
    insert into @aaa values (@a)
    insert into @aaa values (@b)
    ....
    select max(fvalue) from @aaa怎么调试用错?
      

  8.   

    表变量和自定义函数都是SQL 2000才有的功能,你用的是SQL7?
      

  9.   

    如果是SQL7 就用临时表吧,每次做新的比较前先delete from #temp
      

  10.   

    declare @aaa table (fvalue int)
    insert into aaa values (1)
    insert into aaa values (2)
    select max(fvalue) from aaa
    在SQL SERVER 7调试提示
    Server: Msg 156, Level 15, State 1, Line 1
    Incorrect syntax near the keyword 'table'.
    SQL SERVER 2000 提示
    服务器:消息 156,级别 15,状态 1 行 1
    Incorrect syntax near the keyword 'table'.
    为什么