34,593
社区成员
发帖
与我相关
我的任务
分享
ID Name pxid
4 我是中国人 2
5 我爱我们的国家 3
6 我是人民子弟兵 4
declare @table table (ID int,Name varchar(14),pxid int)
insert into @table
select 4,'我是中国人',2 union all
select 5,'我爱我们的国家',3 union all
select 6,'我是人民子弟兵',4
select * from @table order by pxid
/*
ID Name pxid
----------- -------------- -----------
4 我是中国人 2
5 我爱我们的国家 3
6 我是人民子弟兵 4
*/
--上移
--变量
declare @i int ;set @i=6
update @table set pxid=pxid-1 where ID=@i
update @table set pxid=pxid+1 where
id=(select max(id) from @table where id<@i )
select * from @table order by pxid
/*
ID Name pxid
----------- -------------- -----------
4 我是中国人 2
6 我是人民子弟兵 3
5 我爱我们的国家 4
*/
--> 数据库版本:
--> Microsoft SQL Server 2008 (RTM) - 10.0.1600.22
--> 测试数据:account
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'account')
AND type in (N'U'))
DROP TABLE account
GO
---->建表
create table account([ID] int,[Name] varchar(14),[pxid] int)
insert account
select 4,'我是中国人',2 union all
select 5,'我爱我们的国家',3 union all
select 6,'我是人民子弟兵',4
GO
--> 查询结果
SELECT * FROM account order by case when ID = 6 then 0 else 1 end ,pxid
--> 删除表格
--DROP TABLE account