与oracle 有关的那点事「终于解决」

与oracle 有关的那点事「终于解决」常用操作 1.查看创建表参数 提取完整的DDL: SELECT DBMS_METADATA.GET_DDL('TABLE','table_name&am

与oracle 有关的那点事

常用操作

1.查看创建表参数

提取完整的DDL:

SELECT DBMS_METADATA.GET_DDL("TABLE","table_name") FROM DUAL;

代码100分

2.指定返回记录数

代码100分select  XXX from XXX where rownum<n

3.查询指定列的所有值且每个值只显示单条记录:

select 需要查询重复数据的列名
from 表名
group by 需要查询重复数据的列名

4.oracle中的交集、差集、并集

  • INTERSECT
  • MINUS
  • UNION / UNION ALL:union重复内容取唯一,union all没有过滤重复内容

组函数

组函数:即聚合函数,对一组值执行计算,并返回单个值(COUNT除外)。

  • 聚合函数忽略空值。
  • 聚合函数可以用于select、having子句,不可以用于where语句,因为where是对逐条记录进行筛选。
  • 常用聚合函数:
    • AVG:返回平均值,空值被忽略
    • COUNT:返回指定组中记录的数量
    • MAX
    • MIN
    • SUM:只能用于数字列,空值被忽略。
    • COUNT_BIG:返回指定组中的项目数量,与COUNT函数不同的是COUNT_BIG返回bigint值,而COUNT返回的是int值。
    • GROUPING:产生一个附加的列,当用CUBE或ROLLUP运算符添加行时,输出值为1.当所添加的行不是由CUBE或ROLLUP产生时,输出值为0.
    • CHECKSUM:返回在表的行上或在表达式列表上计算的校验值,用于生成哈希索引
    • STDEV:返回给定表达式中所有值的统计标准偏差。
    • VAR:返回统计方差

oracle的rownum用法

Rownum:是oracle自动分配给查询返回行的编号,从1开始。这个字段可以用于限制返回的总行数,但是rownum不能以任何表的名称作为前缀

  1. rownum对于等于某值的查询条件:

    1. rownum都是从1开始,但是1以上的自然数在rownum做等于判断是时认为都是false条件
    2. 无法查询到 where rownum>n (n>1)的记录
    3. 可以查到到where rownum=1的记录
  2. rownum对于大于某值的查询条件

    1. 需要使用子查询且rownum需要有别名:select * from(select rownum no ,id from student) where no>2
  3. rownum对于小于某值的查询条件

    1. 可以直接用 where rownum<n 查询
    2. 区间查询则需要用子查询。
  4. rownum和排序

    1. rownum是系统按照记录插入时的顺序给记录排的号。只能用子查询实现排序。

报错1:[Err] ORA-00979: not a GROUP BY expression

Oracle中 group by 规则:出现在select列表中的字段,如果没有在组函数出现,那么必须出现在group by 子句中。(即select列表中的字段不可以单独出现,必须在group语句或者组函数中。)

参考

参考1:http://blog.itpub.net/17203031/viewspace-688011/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/8044.html

(0)
上一篇 2023-03-08 17:30
下一篇 2023-03-08 18:30

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注