表user
字段id username order排序字段
我想根据order字段对username记录上下移动
如何写sql语句

解决方案 »

  1.   


    select username fron table
    order by order
      

  2.   


    declare @table table (id int,username varchar(1),[order] int)
    insert into @table
    select 1,'a',1 union all
    select 2,'b',2 union all
    select 3,'c',3 union all
    select 4,'d',4 union all
    select 5,'e',5
    --原表
    select * from @table
    /*
    id          username order
    ----------- -------- -----------
    1           a        1
    2           b        2
    3           c        3
    4           d        4
    5           e        5
    */
    --例如选中4,点上移
    declare @i int set @i=4update @table set [order]=[order]-1 where [order]=@i
    update @table set [order]=@i
    where id=(select top 1 id from @table where [order]=@i-1 order by id)select * from @table
    /*
    id          username order
    ----------- -------- -----------
    1           a        1
    2           b        2
    3           c        4
    4           d        3
    5           e        5
    */
    下移同理
     
      

  3.   

    --然后得到表中数据的时候
    select * from tablename order by [order]