select id from tabA where t.id in ('4','2','3','1') order by id desc
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'
自定义排序我只想到一个办法,建一个表存放排序,比如tableB,2列,如下,A列为序号,B列为你要排序的ID,然后TABLEA和TABLEB关联,order tableB.A排序 A B 1 4 2 2 3 1 4 3
上面两位的疑问可以理解。我的举的例子只是想方便说明问题。 实际需求是默认左菜单的问题! 当用户没有设置个性化菜单时就显示默认的左菜单,而当用户设置了左菜单后就显示客户选择的。 起初交易码设计是规范的,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);还请有过类似经检的兄弟们指教,谢谢!
order by id desc
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'
感谢jackiecheng001的回答。
不知还有没有其他更好的查询方法?
A B
1 4
2 2
3 1
4 3
实际需求是默认左菜单的问题!
当用户没有设置个性化菜单时就显示默认的左菜单,而当用户设置了左菜单后就显示客户选择的。
起初交易码设计是规范的,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);还请有过类似经检的兄弟们指教,谢谢!