把这四条sql语句从sqlsever变成oracle的sql语句,求帮忙

1、SELECT top 1 MENUID+1 from app_menu
ORDER BY CAST(MENUID AS int) desc

2、SELECT top 1 id,fileName,filePath,createTime,md5,fileSize FROM VIS_file WHERE md5=#md5#

3、 SELECT top 1 USERID,REALNAME,GENDER,OTEL,OEMAIL,QQ,OADDRESS FROM org_employee where OEMAIL =#email#

4、SELECT top 1 * FROM request_apply where apply_for_id=#applyId#

5、SELECT top 10 * FROM request_apply where request_state=2

这个不就是排序吗,你对照着Oracle的排序排就是了

-- SQL Server 都没必要用 TOP 的
SELECT MAX(MENUID)+1 from app_menu

-- 其它的 SELECT TOP 都按照下面的方式转换
-- 必须明确指定排序才能选取前n条
SELECT id,fileName,filePath,createTime,md5,fileSize
  FROM (
        SELECT id,fileName,filePath,createTime,md5,fileSize,
               ROW_NUMBER() OVER(ORDER BY id) rn
          FROM VIS_file
         WHERE md5=#md5#
       ) t
 WHERE rn <= 1

你其实困惑的应该就是Oracle里没有 Top n * 这种语法吧,这个你在 Oracle里使用 ROW_NUMBER() 得到记录号后,外面再包条件就可以了