如名单表叫a ,里面有字段 名单
原来的表叫 b,表里有字段 名单 地区
select a.名单,b.地区 from a ,b where a.名单=b.名单。
首先,oracle中有存放表名的系统表,所以你那个tcmz有点多余
declarev_tablename varchar2(60)
v_count int
v_sql varchar2(2000)
cursor cur_tablename is
select table_name from user_tables
begin
open cur_tablename
loop
fetch cur_tablename into v_tablename
exit when cur_tablename%notfound
v_sql:='select count(*) from '||v_tablename||''
execute immediate v_sql into v_count
dbms_output.put_line(v_tablename||':'||v_count)
end loop
close cur_tablename
end
如果非要用你那个的话,可以这样改
declarev_tablename varchar2(60)
v_count int
v_sql varchar2(2000)
cursor cur_tablename is
select 表名 from tcmz--字段名你替换成你自己的
begin
open cur_tablename
loop
fetch cur_tablename into v_tablename
exit when cur_tablename%notfound
v_sql:='select count(*) from '||v_tablename||''
execute immediate v_sql into v_count
dbms_output.put_line(v_tablename||':'||v_count)
end loop
close cur_tablename
end
select num,id,subject ,result,datefrom (select num,id,subject ,result,date,
row_number() over (partition by id order by date desc) rn
from table_name)
where rn=2
用分析函数即可,rank() over也可以
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)