如题,请教select id from tabA where t.id in ('4','2','3','1')的查询结果排序
现在的查询结果显示为1、2、3、4
我想要的结果是4、2、3、1用的oracle数据库,想用一句实现!谢谢各位的关注。

解决方案 »

  1.   

    select id from tabA where t.id in ('4','2','3','1')
    order by  id desc
      

  2.   

    select id from tabA where t.id ='4'
    union 
    select id from tabA where t.id ='2'
    union 
    select id from tabA where t.id ='3'
    union
    select id from tabA where t.id ='1' 
      

  3.   

    你这个有啥意义啊,in 里都写死了还select出来
      

  4.   

    说明下,我不是要查id,而是要根据id显示其他字段。
    感谢jackiecheng001的回答。
    不知还有没有其他更好的查询方法?
      

  5.   

    自定义排序我只想到一个办法,建一个表存放排序,比如tableB,2列,如下,A列为序号,B列为你要排序的ID,然后TABLEA和TABLEB关联,order tableB.A排序
    A     B
    1     4
    2     2
    3     1
    4     3
      

  6.   

    上面两位的疑问可以理解。我的举的例子只是想方便说明问题。
    实际需求是默认左菜单的问题!
    当用户没有设置个性化菜单时就显示默认的左菜单,而当用户设置了左菜单后就显示客户选择的。
    起初交易码设计是规范的,F1001、F1002、F1003......,F2001,F2002,F2003......依次下排,可以order by语句实现排序。
    后来客户要求重新排列菜单,而交易码没变,结果就出现了左菜单的排序问题。其实我可以在程序里实现排序的,但我觉的oracle应该有和mysql类似的语句实现按照in(×××)中查询条件排序的方法。
    如:select id from table where id in(3,6,5,2) order by substring_index('3,6,5,2',id,1);还请有过类似经检的兄弟们指教,谢谢!