select t.*,rownum rn from table1 t --rownum就是记录所在的行数
创新互联服务项目包括平果网站建设、平果网站制作、平果网页制作以及平果网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,平果网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到平果省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
你是指定ID去查询,得到的记录只有一条,所以rownum始终是1了,你想要的结果应该是
select tt.*,tt.rn from
(select t.*,row_number() over (order by id) rn from table1 t ) tt
where tt.id = 你要查询的ID值
可以从表user_tables中查询。
select
sum(num_rows)
from
user_tables
;
就是显示用户所有表的行数其中num_rows是每个表的行数,用sum加总一下,就是当前用户所有表的总行数。
但因为user_tables中的数据不是实时统计,会有时间差,所以以上Sql统计得到的结果与实际会存在一定误差。
表名不能直接带进参数,比如用动态sql来拼装。而动态sql结果不能直接读出,用临时表存储。
建一个临时表
create table
tmp_tabcount (tabname varchar2(30),tabcount number(8));
里面写一个动态sql
v_sql = 'insert into tmp_tabcount select count(1) tabcount from '||v_tabname||' ;';
execute immediate v_sql;
select tabcount into v_count from tmp_tabcount where tabname = v_tabname;
return tabcount;
DBA权限下可以查询dba_tables,里面有个num_rows列
select table_name,num_rows from dba_tables where ...;
条件可以根据自己需要来加
num_rows列并不是实时更新的,1小时更新一次。
扩展资料:
Oracle数据库常用sql语句:
一,INSERT (往数据表里插入记录的语句)
INSERT INTO 表名(字段名1, 字段名2, ……) VALUES ( 值1, 值2, ……);
INSERT INTO 表名(字段名1, 字段名2, ……) SELECT (字段名1, 字段名2, ……) FROM 另外的表名;
二,DELETE (删除数据表里记录的语句)
DELETE FROM表名 WHERE 条件;
三,UPDATE (修改数据表里记录的语句)
UPDATE表名 SET 字段名1=值1, 字段名2=值2, …… WHERE 条件;
四,改变表的名称
ALTER TABLE 表名1 TO 表名2;
五,在表的后面增加一个字段
ALTER TABLE表名 ADD 字段名 字段名描述;
六,修改表里字段的定义描述
ALTER TABLE表名 MODIFY字段名 字段名描述;
参考资料:百度百科:Oracle数据库
可用rownum来查询。
如emp表中有如下数据:
现在要求只查5行数据,可用如下语句:
1
select * from emp where rownum=5;
结果如下:
某个用户的表的表名从数据字典表 user_tables 可以查到,虽然 user_tables 数据字典中也有表的行数 NUM_ROWS 字段,但除非你对该用户进行统计信息收集(运行 dbms_stat.gather_schema_stats()系统包)否则该字段要么没有值,要么值是过期的数据,不准确. 正确的做法是:对数据库用户进行统计信息收集后,立刻执行:
select table_name,num_rows from user_tables;