今天上班,遇到一个没写过的sql语句,让制定的两条记录排在最后,场景是这样,本数据库是oracle,
select pack_type_name,pack_type_code FROM bas_pack_type
查询所有,出现以下的信息:
现在想把裸装及散装放道最后,想了拼接的形式,分为两条查询记录,但是不便于再拼接业务场景的sql语句,然后各种想,终于想出了一个办法,试用于各种某条记录置顶或者后置的操作,sql语句如下:
select pack_type_name,pack_type_code,ROWNUM FROM bas_pack_type where 1=1 and ROWNUM <= 50 and status = 'Active' order by case when rownum<3 then 1 else 0 end asc;
效果如图:
此处因为没有id等信息作为标识符,所以借助了rownum伪列来进行标识,也可以借助其他的进行标识排序。