首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

看似简单的sql排序

2012-04-14 
求助看似简单的sql排序比如存在一个表A 数据如下A12345我需要排序得出以下的结果A14235请问这样子如何想,

求助看似简单的sql排序
比如存在一个表A 数据如下
A
1
2
3
4
5

我需要排序得出以下的结果
A
1
4
2
3
5

请问这样子如何想,我想了很久也想不出.

[解决办法]
/*
比如存在一个表A 数据如下
A
1
2
3
4
5
我需要排序得出以下的结果
A
1
4
2
3
5
请问这样子如何想,我想了很久也想不出.
*/
go
if OBJECT_ID('tbl') is not null
drop table tbl
go
create table tbl(
A int
)
go
insert tbl
select 1 union all
select 2 union all
select 3 union all
select 4 union all
select 5

select *from tbl
order by 
case A when 1 then 1 
when 4 then 2 
when 2 then 3 
when 3 then 4 
when 5 then 5 end
/*
结果:
A
1
4
2
3
5
*/
[解决办法]

SQL code
declare @T table (A int)insert into @Tselect 1 union allselect 2 union allselect 3 union allselect 4 union allselect 5select * from @T order by charindex(ltrim(A),'14235')/*A-----------14235*/ 

热点排行