2012-07-07 35 views
0

什么是等效的Oracle(11克)代码执行以下操作:甲骨文MySQL的等效代码

对于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()");

回答

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条款

0

只有两个RDBMS-我在你的陈述中看到的具体内容是“upper()”和“limit”。

下面是使用Oracle “ROWNUM” 作为 “限制” 一种解决方法的链接:

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

+0

已选定的记录数也SQL_CALC_FOUND_ROWS可能会更好作为计数(*) – Randy 2012-07-07 19:11:24

+0

那么SQL_CALC_FOUND_ROWS和SELECT FOUND_ROWS()呢? – kunal18 2012-07-07 19:11:28