SELECT * From Admin WHERE ID in (3,4,10,6)
结果的排序是按从小到的顺序排列的,如下:Id Title
----------- ---------------
3 LFan
4 ZXin
6 YSXun
10 WWhua
可是我想要的排序应该还是按照(3,4,10,6)这样的顺序排列怎么写查询语句呀?注(3,4,10,6)是会变动的!
想要的效果:Id Title
----------- ---------------
3 LFan
4 ZXin
10 WWhua
6 YSXun
结果的排序是按从小到的顺序排列的,如下:Id Title
----------- ---------------
3 LFan
4 ZXin
6 YSXun
10 WWhua
可是我想要的排序应该还是按照(3,4,10,6)这样的顺序排列怎么写查询语句呀?注(3,4,10,6)是会变动的!
想要的效果:Id Title
----------- ---------------
3 LFan
4 ZXin
10 WWhua
6 YSXun
SELECT * From Admin WHERE ID in (3,4,10,6) order by charindex(cast(id as varchar),'3,4,10,6')
set @id='3,4,10,6'
SELECT * From Admin
WHERE charindex(','+ltrim(id)+',',','+@id+',')>0
order by charindex(','+ltrim(id)+',',','+@id+',')>0
试试这个SELECT * From Admin WHERE ID in (3,4,10,6)
order by (case when 3 then 1 when 4 then 2 when 10 then 3 when 6 then 4 end)
SELECT * From Admin WHERE ID in (3,4,10,6) order by case id when 3 then 1 when 4 then 2 when 10 then 3 when 6 then 4 end--如果不定,就只有加个表来记录了.
例如TB
PX ID
1 3
2 4
3 10
4 6select m.* from admin m, tb n where m.id = n.id order by n.px
最后根据这个列来排序???????????
又学到了知识.....
set @id='3,4,10,6'
SELECT * From Admin
WHERE charindex(','+ltrim(id)+',',','+@id+',')>0
order by charindex(','+ltrim(id)+',',','+@id+',')这样不行吗搂主?
不好意思,我是在ASP中使用,没有写存储过程。我只能保证下面代码能在ASP中正常运行。
Sql_A="SELECT ID,NickName,Tel,RoleTitle From View_AdminInfo WHERE ID in ("&Rs("UserId")&") Order By charindex(cast(id as varchar),'"&Rs("UserId")&"')"
看下我的blog
http://blog.csdn.net/ws_hgo/archive/2009/02/06/3866925.aspx
--(1)借用字符串进行无规律排序
create table #DepartMent
(
Depart varchar(10)
)
insert into #DepartMent select '组长'
union all select '助理'
union all select '总经理'
union all select '员工'
union all select '副总经理'
union all select '主管'
declare @sql varchar(100)
set @sql=N'总经理,副总经理,主管,组长,助理,员工'
select * from #DepartMent
order by charindex(N','+Depart+N',',N','+@sql+N',')