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           张三
*/

解决方案 »

  1.   

    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 
    where
        charindex(','+rtrim(a.ID)+',',','+b.ID+',')>0
    order by 
        charindex(','+rtrim(a.ID)+',',','+b.ID+',')/*
    id          xm         
    ----------- ---------- 
    5           赵七
    2           李四
    4           陈六
    3           王五
    6           周八
    1           张三
    */
      

  2.   

    为什么process的字段A中只有一个数字1的时候就没有结果呢?必须是1,才有结果!