declare @sql nvarchar(2000)
set @sql='select * from t1'
if (@P_Flag=0)
set @sql=@sql +' order by a'if (@P_Flag=1)
set @sql = @sql + 'order by b'executesql @sql

解决方案 »

  1.   

    **** order by  case when @P_Flag=0  then a when @P_Flag=1 then b else null end
      

  2.   

    select * from 表
    order by case when @P_Flag=0 then a 
                  when @P_Flag=1 then b end
      

  3.   

    exec('select * from 表 order by case '+@P_Flag+' when 0 then a when 1 then b end' )