oracle 按照指定的查询条件对查询结果进行排序

时间:2021-02-07 02:55:41

在今天的工作中,碰到一个老问题,需要对每天的工作量进行简化,作为运维人员,每天写运维日志,非常繁琐,但是有些东西是必须记录的。那就找方法,把过程简化,


有这么一个需求,在系统找到的交易出错的帐号,需要查询出交易详单,然后写进每天的交易检测报告里。

根据相关条件查询出来的格式为:


时间       帐号                   帐号交易状态


然后sql根据帐号进行交易查询,按照寻常的升降排序无法满足要求,出来的结果还得一条一条的黏贴

自己查找相关资料,原来order by instr 语句可以解决以上的需求。


原sql为:

select t.TermNo, m.MercNam, t.TrmModNo
  from ku.biao t
  left join ku.biao2 m on t.mercid = m.mercid
 where t.TermNo in ('60010025', '60030817', '60039508', '60056123',
        '60054968', '60045502', '60046626')

更改的sql为

select t.TermNo, m.MercNam, t.TrmModNo
  from ku.biao t
  left join ku.biao2 m on t.mercid = m.mercid
 where t.TermNo in ('60010025', '60030817', '60039508', '60056123',
        '60054968', '60045502', '60046626')

    order by instr('60010025,60030817,60039508,60056123,60054968,
                60045502,60046626',
                t.TermNo)

红色括号内,把查询条件全部只用一对单引号界定,后面跟查询字段。

这样就可以根据查询字段,列出查询结果。

然后直接复制到交易日报中。