order by 1是不是等同于不排序???
正确的怎么写?
别告诉我取消order by就可以,我现在是拼界字符串,里面必须有order by 这项后面接一个字段名,
但是初始时候不希望排序,谢谢了

解决方案 »

  1.   

    判断下排序字段名是不是NULL,是了就不加order by,有列名了才去加。
      

  2.   


    declare @sql varchar(4000)
    declare @order varchar(100)set @sql = 'select * from tb'
    set @order = 'id desc'if isnull(@order,'') <> ''
        set @order = ' order by ' + @order
    else
        set @order = ''exec(@sql+@order)
      

  3.   

    order by 1 表示是按第1列排序。
    你要是不想排序:
    order by getdate()
      

  4.   


    declare @t table (id int)
    insert into @t
    select 3 union all
    select 1 union all
    select 2select * from @t order by 1
    /*
    id
    -----------
    1
    2
    3
    */select * from @t order by getdate()
    /*
    id
    -----------
    3
    1
    2
    */可以控制不拼接order,也可以用getdate()
      

  5.   

    order by 1不等同于不排序,是按第1列排序
      

  6.   

    order by 1等同于按第一列排的
      

  7.   

    select
     1,
     blah1,
     blah2
    from
     xxx
    where
     yyy
    order by 1
      

  8.   

    order by (select 1) 这个也不排序
      

  9.   

    order by case when 1=1 then 1 else 2 end
    这个也不排序吧
      

  10.   

    这个好象就是order by 1吧
      

  11.   

    在oracle 里写Select * From table1 Order By (Select 1 From dual)
    发现还是跟不带order by的语句结果有区别
    sql server还没试,可能sql server可以吧
      

  12.   


    order by 1的1是有特别的含义:即列号
    order by (结果是常量的运算),则不是列号了