排序问题:数据库里有1,2,3,4,5 共5条记录,要用一条sql语句让其排序,使它排列成4,5,1,2,3,怎么写?...

本文介绍了在 SQL Server 中使用六种不同的方法对数据进行特定排序的技巧,包括使用 case when 语句、数学运算、字符串查找函数等实现复杂的数据排序需求。
 

CREATE TABLE [t] (
 
[id] [int] IDENTITY (11NOT NULL
 ,
 
[GUID] [uniqueidentifier] NULL
 
ON [PRIMARY]

GO


下面这句执行5

insert t values (newid())


查看执行结果

select * from t


1
 第一种

select * from t
 
order by case id when 4 then 1

                  
when 5 then 2
                  
when 1 then 3
                  
when 2 then 4
                  
when 3 then 5 end


2
 第二种

select * from t order by (id+2)%6


3
 第三种

select * from t order by charindex(cast(id as varchar),'45123')


4
 第四种

select * from t
WHERE id between 0 and 5

order by charindex(cast(id as varchar),'45123')


5
 第五种

select * from t order by case when id >3 then id-5 else id end


6
 第六种

select * from t order by id / 4 desc,id asc

转载于:https://www.cnblogs.com/safezone/articles/1260905.html

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值