select distinct dm_org.mc sldw,
                yw_cj_hgtsqxxb.yyqzdw,
                '0' spjg,
                '0' qzgs,
                '0' jzgs,
                yw_cj_hgtsqxxb.zt_tkzd tk,
                yw_cj_hgtsqxxb.zt_jj sfjj,
                yw_cj_hgtsqxxb.zwx || yw_cj_hgtsqxxb.zwm zwxm,
                yw_zjblb.zjhm,
                yw_cj_hgtsqxxb.sfzh,
                yw_cj_hgtsqxxb.ywbh
  from xt_clzywsyb, yw_cj_hgtsqxxb, dm_org, yw_zjblb
 where yw_cj_hgtsqxxb.ywbh = yw_zjblb.ywbh(+)
   and yw_cj_hgtsqxxb.sldw = dm_org.DM(+)
   and yw_cj_hgtsqxxb.ywbh in ('320000913638881', '320000692706496',
        '320000753933612','320000544532190')这句执行后 四条记录的是按业务编号这么排序的
320000753933612
320000692706496
320000913638881
320000544532190怎么才能按 yw_cj_hgtsqxxb.ywbh in ('320000913638881', '320000692706496',
        '320000753933612','320000544532190') 这里的顺序排序?
即执行后四条记录是这么个顺序
320000913638881
320000692706496
320000753933612
320000544532190

解决方案 »

  1.   


    order by decode(yw_cj_hgtsqxxb.ywbh,'320000913638881',1, '320000692706496',2,
      '320000753933612',3,'320000544532190',4)
      

  2.   

    你的需求有点怪,不建议使用SQL排序。不过,你可以这样做:
    先用如下语句建立一个视图:
    select distinct dm_org.mc sldw,
      yw_cj_hgtsqxxb.yyqzdw,
      '0' spjg,
      '0' qzgs,
      '0' jzgs,
      yw_cj_hgtsqxxb.zt_tkzd tk,
      yw_cj_hgtsqxxb.zt_jj sfjj,
      yw_cj_hgtsqxxb.zwx || yw_cj_hgtsqxxb.zwm zwxm,
      yw_zjblb.zjhm,
      yw_cj_hgtsqxxb.sfzh,
      yw_cj_hgtsqxxb.ywbh
      from xt_clzywsyb, yw_cj_hgtsqxxb, dm_org, yw_zjblb
     where yw_cj_hgtsqxxb.ywbh = yw_zjblb.ywbh(+)
      and yw_cj_hgtsqxxb.sldw = dm_org.DM(+)然后使用union
    select * from m_view
    where ywbh = '320000913638881'
    union
    select * from m_view
    where ywbh = '320000692706496'依次类推
      

  3.   

    可以用in里的字串做个分解,分解成一个表.rn表示子串的位置,name表示子串的值,然后按rn排序
      

  4.   

    order by
    decode(yw_cj_hgtsqxxb.ywbh,'320000913638881',0,'320000692706496',1,
    '320000753933612',2,'320000544532190',3)