--(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',')  

解决方案 »

  1.   

    --1,3,4,5,2 
    declare @sql varchar(100)   
    set @sql=N'1,3,4,5,2'  
      
    select * from '表名'
    order by charindex(N','+Depart+N',',N','+@sql+N',')  
      

  2.   

    select * from '表名' order by charindex(字段+','  ,  '1,3,4,5,2,')  
      

  3.   


    select * from tb
    order by case 字段 when 1 then 1 when 3 then 2 when 4 then 3 when 5 then 4 when 2 then 5 end
      

  4.   

    -->简化一下四楼的代码
    --1,3,4,5,2 
    declare @sql varchar(100)   
    set @sql=N'1,3,4,5,2'  
      
    select * from '表名'
    order by charindex(Depart,@sql) 
      

  5.   

    试试这个:
    select * from tb
    order by case 字段 when 1 then 1 when 3 then 2 when 4 then 3 when 5 then 4 when 2
      

  6.   


    create table #1(id int identity(1,1),col2 int)insert #1 values(1)
    insert #1 values(2)
    insert #1 values(3)
    insert #1 values(4)
    insert #1 values(5)select * from #1 order by case col2 when 1 then 1 when 3 then 2 when 4 then 3 when 5 then 4 when 2 then 5 endid          col2
    ----------- -----------
    1           1
    3           3
    4           4
    5           5
    2           2(5 row(s) affected)
      

  7.   


    select * from tb
    order by case col when 2 then 6 else col end
      

  8.   

    select * from 表名 
    order by charindex(','+rtrim(字段名)+',',  ',1,3,4,5,2,')  
      

  9.   

    charindex或patindex就可以了,但要加前后辍。case when硬编码? 不知道值的时候不合适,除非构造动态语句。
      

  10.   

    create table #tb(col int)insert #tb values(1)
    insert #tb values(2)
    insert #tb values(3)
    insert #tb values(4)
    insert #tb values(5)
    select col 
    from #tb 
    order by (case col when 1 then 1 when 3 then 2 when 4 then 3 when 5 then 4 when 2 then 5 else 6 end)drop table #tb
      

  11.   

    那就用case when xx then yy 
               when ** then &&
               .
               .
               .
         end;
      

  12.   

    支持这个,一试阿:create table #tb(col int) insert #tb values(1) 
    insert #tb values(2) 
    insert #tb values(3) 
    insert #tb values(4) 
    insert #tb values(5) 
    select col 
    from #tb 
    order by (case col when 1 then 1 when 3 then 2 when 4 then 3 when 5 then 4 when 2 then 5 else 6 end) drop table #tb
      

  13.   

    SQL code--1,3,4,5,2 
    declare @sql varchar(100)  
    set @sql=N'1,3,4,5,2'  
      
    select * from '表名' 
    order by charindex(N','+Depart+N',',N','+@sql+N',')  
      

  14.   

    select yourcolumn from yourtable
    order by cast(yourcolumn as int)
      

  15.   

    select *,case id when 2 then id + 100 else id end as numid from 表名 order by numid