select count(*) from (select * from t where id=1);这样不就可以了。也可以自己写个函数,然后里面差不多实现
select count(*) from tab
就是想把mysql语句转换成oracle的 mysql> SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name WHERE id > 100 LIMIT 10; mysql> SELECT FOUND_ROWS();
select rownum,t.* from table t 可以看到每一行的編號,最大行也可以看到..
create or replace function f_rlt_num(in_tab_name in varchar2,in_cond in varchar2) return number is v_sql_str varchar2(500); v_count number(10); begin v_sql_str:='select count(1) from ' || in_tab_name || ' ' || in_cond; execute immediate v_sql_str into v_count; return v_count; end f_rlt_num; /SELECT f_rlt_num('USER_TABLES','WHERE tablespace_name=''USERS''') from dual;
mysql> SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name
WHERE id > 100 LIMIT 10;
mysql> SELECT FOUND_ROWS();
可以看到每一行的編號,最大行也可以看到..
return number
is
v_sql_str varchar2(500);
v_count number(10);
begin
v_sql_str:='select count(1) from ' || in_tab_name || ' ' || in_cond;
execute immediate v_sql_str into v_count;
return v_count;
end f_rlt_num;
/SELECT f_rlt_num('USER_TABLES','WHERE tablespace_name=''USERS''') from dual;