MysqL 转Oracle的问题

select
id,cardno,mt.cardname,saler,storedate,money,moneytype,remaincount,opuser,opertime,selldate,username from
membercard mc
left join pt_user on userno=saler
left join membertype mt on mc.cardtypeid=mt.cardtypeid

order by mc.id desc limit 0,22
转成Oracle语法,应该是怎样呢?

如果仅针对本题目
select
id,cardno,mt.cardname,saler,storedate,money,
moneytype,remaincount,opuser,opertime,selldate,username
from membercard mc
left join pt_user on userno=saler
left join membertype mt on mc.cardtypeid=mt.cardtypeid

where rownum<=22
order by mc.id desc

如果分页
select * from (select m.*,rownum as rn from (
select
id,cardno,mt.cardname,saler,storedate,money,
moneytype,remaincount,opuser,opertime,selldate,username
from membercard mc
left join pt_user on userno=saler
left join membertype mt on mc.cardtypeid=mt.cardtypeid

) m ) where rn between a and b;

其中 a,b为起止游标,入2,10,即第二条到第10条记录,区别于mysql的limit参数

这个是分页,要实现Oracle语法需要三层嵌套,在网上搜下Oracle的分页显示就会找到答案的

select
id,cardno,mt.cardname,saler,storedate,money,
moneytype,remaincount,opuser,opertime,selldate,username
from membercard mc
left join pt_user on userno=saler
left join membertype mt on mc.cardtypeid=mt.cardtypeid

where rownum<=22
order by mc.id desc

其他的都一样,只需把mysql中的limit换成oracle中的rownum来判断就哦了吧。