日期:2014-05-18  浏览次数:20404 次

这种效果不知道能不能实现-----排序问题
表process中:
字段A中存放人员的ID,存放格式例如是:5,2,4,3,6,1
每个人员ID以逗号分开,
表user中存放人员信息:
id         xm
1           张三
2           李四
3           王五
4           陈六
5           赵七
6           周八
我现在要从process表中搜索人事信息,
select   xm   from   user   where   id   in(select   a   from   process)   order   by   ……

要按process表中字段A中存放的顺序显示,不知道可不可以实现,我不知道应该怎么排序,请高手指教


------解决方案--------------------
declare @process table(ID varchar(20))
insert into @process values( '5,2,4,3,6,1 ')

declare @user table(id int,xm varchar(10))
insert into @user values(1, '张三 ')
insert into @user values(2, '李四 ')
insert into @user values(3, '王五 ')
insert into @user values(4, '陈六 ')
insert into @user values(5, '赵七 ')
insert into @user values(6, '周八 ')

select
a.*
from
@user a,@process b
order by
charindex( ', '+rtrim(a.ID)+ ', ', ', '+b.ID+ ', ')

/*
id xm
----------- ----------
5 赵七
2 李四
4 陈六
3 王五
6 周八
1 张三
*/