解决方案 »

  1.   

    select top ... from tab  order by col
    可以改写成
    select * from (select ... from tab order by col) where rownum<=行数;CHARINDEX函数用instr()来改写自己花点时间改一下,毕竟这是你的工作,别人不能替你领工资
      

  2.   

    一,String sql = "select top " + num + " user_code, user_name, count(query_id) query_num from (select distinct query_id, query_person from " + db_table_name + ") t1, tab_bases_user t2 where t1.query_person = t2.user_code group by user_code, user_name order by query_num desc "; 改成String sql = "select t.* from (" ||
    "select user_code, user_name, count(query_id) query_num from (select distinct query_id, query_person from " || 
    db_table_name || ") t1, tab_bases_user t2 where t1.query_person = t2.user_code group by user_code, user_name order by query_num desc ) t where rownum <= " || to_string(num); PLSQL中拼接字符串用||
      

  3.   

    额,忘了变量赋值应该用:=String sql := "select t.* from (" ||
    "select user_code, user_name, count(query_id) query_num from (select distinct query_id, query_person from " || 
    db_table_name || ") t1, tab_bases_user t2 where t1.query_person = t2.user_code group by user_code, user_name order by query_num desc ) t where rownum <= " || to_string(num);
      

  4.   

    楼上写错了吧,rownum后面怎么可能接字符串,必须是整数
      

  5.   

    看这里http://blog.csdn.net/terryhuang/article/details/1623674