0

执行以下操作的等效 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()");

4

2 回答 2

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子句将被选择的记录数

于 2012-07-08T10:40:28.453 回答
0

我在您的声明中看到的唯一两个特定于 RDBMS 的东西是“upper()”和“limit”。

这是使用 Oracle “rownum” 作为 “limit” 解决方法的链接:

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

于 2012-07-07T19:08:21.903 回答