可已设置已中间变量@test1,@test2,@test3....
select @test1=column1
select @test2=column2
select @test3=column3
....
在order by 调用。
column1,2,3... 要建index

解决方案 »

  1.   

    declare @column1 varchar(50),@order1 varchar(50),@sql varchar(1000)
    select @column1='column1',@order1='desc'
    select @sql='select * from table order by '+@column1+' '+@order1 
    exec(@sql)
      

  2.   

    感谢foolishchao(傻超)
    to leimin(leimin): 能不能说的详细一点?order by中不能使用参数的啊,谢谢
      

  3.   

    感谢foolishchao(傻超)
    to  leimin(leimin): 能不能说的再详细一点?order by中不能使用参数啊
      

  4.   

    Python:你的order by 中的字段是什麼類型的?
      

  5.   

    一个实用的方法
    declare @orderflag
    if @orderflag =1 
        select * from table order by another
    else if @orderflag =2
       select flt_id from ta_flight order by another
      

  6.   

    贴错了
    declare @orderflag
    if @orderflag = 1
      select * from table order by one
    if @orderflag = 2
      select * from table order by another
      

  7.   

    主要是可能回有多个字段进行排序的组合和排列,我在程序中生成了order by的字符串,但是,不知道如何传递到store procedure中,除了foolishchao(傻超)的办法,还有别的方法吗?
      

  8.   

    这种问题,一般来说就是构造动态sql语句,然后使用exec来执行。
    你可以把程序中生成的order by的字符串作为字符串参数传入存储过程,然后在存储过程中把要执行的sql语句和传入的字符串组合成一个新的字符串,比如@sql,然后通过语句exec(@sql)来执行这个动态生成的sql语句。
    思路都是一样的,碰到问题自己多想想,很容易触类旁通的。