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
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
order by case when @P_Flag=0 then a
when @P_Flag=1 then b end