日期:2014-05-17  浏览次数:20887 次

大神们帮忙看看吧 关于SQL中in的问题
本帖最后由 u012067473 于 2013-10-09 18:00:41 编辑
    在Oracle中我根据id查数据,设那些id为:(9,8,5,1,6,3)用in('9','8','5','1','6','3')查询得到数据,但是得到数据的id顺序变成了(1,3,5,6,8,9)请问怎样才能使得到数据后的数据id顺序是(9,8,5,1,6,3)、

------解决方案--------------------
查询后面添加一个order by decode(id,9,1,8,2,5,3,1,4,6,5,3,6)

如果是传值的 可以考虑在程序里面先拼接出这个order by 比较简单
------解决方案--------------------
引用:
    在Oracle中我根据id查数据,设那些id为:(9,8,5,1,6,3)用in('9','8','5','1','6','3')查询得到数据,但是得到数据的id顺序变成了(1,3,5,6,8,9)请问怎样才能使得到数据后的数据id顺序是(9,8,5,1,6,3)、



楼主直接 order by instr('9,8,5,1,6,3',id) 这样就和你传入的顺序一致了