Oracle MySQL等效代码

时间:2012-07-07 19:03:20

标签: mysql database oracle pagination

执行以下操作的等效Oracle(11g)代码是什么:

  

对于MySQL

ps = con.prepareStatement("select SQL_CALC_FOUND_ROWS from student_details where UPPER(name) like UPPER(?) limit " + offset + ", " + noOfRecords);

rs = ps.executeQuery("SELECT FOUND_ROWS()");

2 个答案:

答案 0 :(得分:1)

试试这样:

SELECT *
FROM (select t.*, rownum rn, count(*) over() as SQL_CALC_FOUND_ROWS
        from student_details t
       where UPPER(name) like UPPER(?))
WHERE rn <= offset 

“SQL_CALC_FOUND_ROWS”中返回的值将是在没有WHERE rn <= offset子句的情况下选择的记录数

答案 1 :(得分:0)

我在语句中看到的仅有两个特定于RDBMS的东西是“upper()”和“limit”。

以下是使用Oracle“rownum”作为“限制”解决方法的链接:

“Upper()”应该在Oracle中正常工作。