我有类似的一段sql文
SELECT          *
FROM            kmu.D_SEISEKI_KOGI
WHERE           (GAKUSEKI_NO IN ('2004024', '2004011'))我想按照 IN语句里面的顺序进行排序 有什么好方法吗?
结果希望是 
2004024 
2004011

解决方案 »

  1.   

    SELECT          *
    FROM            kmu.D_SEISEKI_KOGI
    WHERE           (GAKUSEKI_NO IN ('2004024', '2004011'))
    ORDER BY CHARINDEX(GAKUSEKI_NO, '2004024', '2004011')
      

  2.   

    不行的,ORDER BY CHARINDEX不行的
      

  3.   

    SELECT          *
    FROM            kmu.D_SEISEKI_KOGI
    WHERE           GAKUSEKI_NO ='2004024' union all
    SELECT          *
    FROM            kmu.D_SEISEKI_KOGI
    WHERE           GAKUSEKI_NO ='2004011'
      

  4.   

    SELECT          *
    FROM            kmu.D_SEISEKI_KOGI
    WHERE           (GAKUSEKI_NO IN ('2004024', '2004011'))
    --添加
    order by convert(int,GAKUSEKI_NO) desc
      

  5.   

    paoluo(一天到晚游泳的鱼) ( ) 信誉:100    Blog   加为好友  2007-6-9 18:05:46  得分: 0  
     
     
       
    SELECT          *
    FROM            kmu.D_SEISEKI_KOGI
    WHERE           (GAKUSEKI_NO IN ('2004024', '2004011'))
    ORDER BY CHARINDEX(GAKUSEKI_NO, '2004024', '2004011')  
    --------------------------------------------------------------
    改成如下
    SELECT          *
    FROM            kmu.D_SEISEKI_KOGI
    WHERE           (GAKUSEKI_NO IN ('2004024', '2004011'))
    ORDER BY CHARINDEX(GAKUSEKI_NO, '2004024,2004011')
     
      

  6.   

    SELECT          
    GAKUSEKI_NO,*
    FROM            
    kmu.D_SEISEKI_KOGI
    WHERE           
    (GAKUSEKI_NO IN ('2004024', '2004011'))
    order by GAKUSEKI_NO desc
      

  7.   

    哦,不好意思,的確有點問題SELECT          *
    FROM            kmu.D_SEISEKI_KOGI
    WHERE           (GAKUSEKI_NO IN ('2004024', '2004011'))
    ORDER BY CHARINDEX(GAKUSEKI_NO, '2004024,2004011')
      

  8.   

    是这个意思吗?
    order by case when GAKUSEKI_NO='2004024' then 0 when GAKUSEKI_NO='2004011' then 1 end