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() 得到记录号后,外面再包条件就可以了