最好是一条select语句就能完成

解决方案 »

  1.   

    select * from 表 where 代码<>'I' order by 序号 union all select * from 表 where 代码='I'
      

  2.   

    select * from 表 where 代碼<>'I'  order by 序号
    union all
    select * from 表 where 代碼='I'
      

  3.   

    SELECT * FROM
    (
    SELECT 姓名 = '小鱼',代码 = 'A',序号 = 1
    UNION ALL SELECT '小熊','I',2
    UNION ALL SELECT '青衣','M',3
    ) T ORDER BY CHARINDEX('I',代码),序号
      

  4.   

    楼上兄弟,你的语句执行不成功,  
    order by 序号去掉就可以了,但是只把为代码为I的放在最后,
    还是没有按序号排序
      

  5.   

    SELECT * 
    FROM T 
    ORDER BY CHARINDEX('I',代码),序号
      

  6.   

    SELECT * FROM
    (
    SELECT 姓名 = '小鱼',代码 = 'A',序号 = 1
    UNION ALL SELECT '小熊','I',2
    UNION ALL SELECT '青衣','B',3
    UNION ALL SELECT '小熊','D',4
    UNION ALL SELECT '青衣','M',5
    UNION ALL SELECT '小熊','E',6
    UNION ALL SELECT '青衣','G',7
    ) T ORDER BY CHARINDEX('I',代码),序号
      

  7.   

    说错了,
    Rotaxe(程序员) 
     hdslah()   你们俩的执行不了
     gmlxf(烛光)  你的成功了,谢谢
      

  8.   

    select * from 表 order by case when 代码<>'I' THEN 序号 ELSE 序号+20000000 END
      

  9.   

    select 姓名,代码,case when 代码='I' then 'x'+序号 else 序号 end as 序号1 from 表
    order by 序号1
    思路:当代码为‘I’时,对序号进行处理,使之排在其它序号之后,再按处理后的序号排序即可。'x'+序号为例,可根据你实际情况自已定义规则。
      

  10.   

    select c.fldNameS,c.fldCodeS,c.fldIDI
    from
    (select 'a'as fldOrderIDS , a.fldNameS as fldNames,a.fldCodeS as fldCodeS,a.fldIDI as fldIDI   
    from table1 a 
    where fldCodeS <>'I'
    union 
    select 'b'as fldOrderIdS,b.fldNameS as fldNames,b.fldCodeS as fldCodeS,b.fldIDI as fldIDI   
    from table1 b 
    where fldCodeS ='I')c
    order by c.fldOrderIdS,c.fldIDI
      

  11.   

    gmlxf(烛光)
    caiyunxia(monkey) 两位真强,都执行成功了,都可以,厉害
    牛人,,,
    向你们学习,结贴
      

  12.   

    如果I排第一,可以:
    SELECT * 
    FROM T 
    ORDER BY CHARINDEX('I',代码) DESC,序号ORSELECT * 
    FROM T 
    ORDER BY
    case when 代码<>'I' THEN 序号 ELSE NULL END
      

  13.   

    To: gmlxf(烛光) 
    SELECT * 
    FROM T 
    ORDER BY
    case when 代码<>'I' THEN 序号 ELSE NULL END
    --改一改
    SELECT * 
    FROM T 
    ORDER BY
    case when 代码<>'I' THEN 序号 ELSE NULL END,序号
      

  14.   

    case when 代码<>'I' THEN 序号 ELSE NULL END,序号
    --------
    你这个序号会不会是多余的?为什么。
      

  15.   

    select 姓名,代码,序号,case when 代码='I' then 2 else 1 end a order by a,代码这条语句就应该能够成功了哈。