大神们帮忙看看吧 关于SQL中in的问题 本帖最后由 u012067473 于 2013-10-09 18:00:41 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 查询后面添加一个order by decode(id,9,1,8,2,5,3,1,4,6,5,3,6)如果是传值的 可以考虑在程序里面先拼接出这个order by 比较简单 再问个问题,在数据库中用order by decode 的效率快些,还是在服务层用for循环匹配效率快些呢? 这样也可以 方法肯定有很多 直接拼接order by decode(id,9,1,8,2,5,3,1,4,6,5,3,6) 第一个是id 后面2、4、6..位是要查询的 3、5、7..位 是要转换的数字string sql = "order by decode(id";for(int i = 0 ;...){ sql += +","+"数据集序列"+","+i.Tostring();}sql += ")";然后把这段 放在你的sql语句后面就行了 一般来说 少量数据 效率差不多 如果是传值很多参数 本身就要in这么多 然后排序 效率肯定会降很多 LZ可以测试一下 查询一个页面 用2种方式做 哪一个反应会快点 楼主直接 order by instr('9,8,5,1,6,3',id) 这样就和你传入的顺序一致了 楼主直接 order by instr('9,8,5,1,6,3',id) 这样就和你传入的顺序一致了3Q 受教了 数据库设计有没有什么好书或建议提供啊 oralce的帮助文档怎么打开 哪个sql更快? 怎么判断数据库表在过去的5分钟之内有没有插入新的数据? alter table 加变量怎么加 Ora10建用户的问题 !!!!关于SqlServer移植到Oracle语法问题 运行Oracle Enterprise Manager Console錯誤 C#从oracle数据库中读取数据乱码 oracle 含有坐标值的blob类型数据如何转换成可识别的字符串 oracle数据库安装在物理机上 ,在虚拟机中访问数据库,一直显示无监听程序 Oracle SQL查询不出结果
再问个问题,在数据库中用order by decode 的效率快些,还是在服务层用for循环匹配效率快些呢?
这样也可以 方法肯定有很多 直接拼接order by decode(id,9,1,8,2,5,3,1,4,6,5,3,6)
第一个是id 后面2、4、6..位是要查询的 3、5、7..位 是要转换的数字
string sql = "order by decode(id";
for(int i = 0 ;...)
{
sql += +","+"数据集序列"+","+i.Tostring();
}
sql += ")";
然后把这段 放在你的sql语句后面就行了
一般来说 少量数据 效率差不多 如果是传值很多参数 本身就要in这么多 然后排序 效率肯定会降很多 LZ可以测试一下 查询一个页面 用2种方式做 哪一个反应会快点