oracle数据库批量查询

oracle数据库批量查询,第1张

名单做成一个临时的表,然后和原来的那个表做关联即可 。

如名单表叫a ,里面有字段 名单

原来的表叫 b,表里有字段 名单 地区

select a.名单,b.地区 from a ,b where a.名单=b.名单。

首先,oracle中有存放表名的系统表,所以你那个tcmz有点多余

declare 

v_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

如果非要用你那个的话,可以这样改

declare 

v_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,date

from (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也可以


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6746079.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-27
下一篇 2023-03-27

发表评论

登录后才能评论

评论列表(0条)

保存