zoukankan      html  css  js  c++  java
  • 八、Oracle SQL(聚合函数&标量函数)

    12. 聚合函数

    12.1 AVG() 求平均数

    --查询某列的平均值
    SELECT AVG(列) FROM 表
    

    12.2 COUNT() 查询条数

    -- 查询所有记录的条数
    select count(*) from 表;
    
    -- 查询对应列的值不为空的记录的条数
    select count(列) from 表;
    
    -- 查询对应列不重复的记录条数
    select count(distinct 列) from 表;
    

    12.3 FIRST() 查询第一条(PS:oracle中表达式不一样)

    --oracle中first()函数的表达方式
    SELECT
        列
    FROM
        表
    ORDER BY
        列 ASC
    WHERE
        ROWNUM <= 1;
    

    12.4 LAST() 查询最后一条(PS:oracle中表达式不一样)

    --oracle中last()函数的表达方式
    SELECT
        列
    FROM
        表
    ORDER BY
        列 DESC
    WHERE
        ROWNUM <= 1;
    

    12.5 MAX()最大值 MIN()最小值

    --指定列的最大值
    SELECT MAX(列) FROM 表;
    
    --指定列的最小值
    SELECT MIN(列) FROM 表;
    

    12.6 SUM()统计指定列的值

    --统计指定列的总和
    SELECT SUM(列) FROM 表;
    

    12.7 GROUP BY()分组(通常做统计时结合聚合函数用)

    --分组统计
    SELECT 聚合函数(列)
    FROM 表
    GROUP BY 列;
    

    12.8 HAVING(筛选分组后的各组数据)

    --HAVING与where用法类似
    PS:增加 HAVING 子句原因是WHERE 关键字无法与聚合函数一起使用
    PS:HAVING 子句可以让我们筛选分组后的各组数据
    
    
    SELECT 列, 聚合函数(列)
    FROM 表
    WHERE 条件
    GROUP BY 列
    HAVING 聚合函数(列) 条件;--这行的目的是为了在分组之后再次根据聚合函数筛选
    

    13. 标量函数

    13.1 UCASE()大写转换 LCASE()小写转换

    --把查询结果对应的列进行大写转换
    SELECT UCASE(列) FROM 表;
    
    --把查询结果对应的列进行小写转换
    SELECT LCASE(列) FROM 表;
    

    13.2 SUBSTR()提取字符

    --从文本字段中提取字符
    PS:Oracle 中没有 MID 函数,substr 函数有类似功能
    
    /*
    column_name    必需。要提取字符的字段。
    start    必需。规定开始位置(起始值是 1)。
    length    可选。要返回的字符数。如果省略,则 substr() 函数返回剩余文本。
    */
    SELECT SUBSTR(列,起始位置[,长度]) FROM TABLE_NAME;
    

    13.3 LEN()返回长度

    --返回文本字段中值的长度
    SELECT LEN(列) FROM 表;
    

    13.4 ROUND()舍入为指定位数的小数

    --舍入为指定位数的小数
    SELECT ROUND(列,位数) FROM 表;
    --例子:
    SELECT ROUND(1234.5678,4) FROM DUAL;
    PS:dual是一个虚拟表,用来构成select的语法规则,oracle保证dual里面永远只有一条记录。
    PS:由于上表的1234.5678已经是确定的数,不用从相应的表查询,所以这里可以用dual来保持标准格式。
    

    13.5 SYSDATE获取当前时间

    --获取当前时间
    SELECT SYSDATE FROM dual;
    

    13.6 NVL(expr1,expr2)空处理函数

    --nvl函数:如果oracle第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第一个参数本来的值。
    NVL(expr1,expr2);
    

    转载自:有梦想的肥宅

  • 相关阅读:
    环形二维数组
    梦断代码(三)
    梦断代码(二)
    梦断代码(一)
    CNblogs用户体验
    《软件工程》--读书笔记三
    《软件工程》--读书笔记二
    《软件工程》--读书笔记一
    找出水王
    典型用户
  • 原文地址:https://www.cnblogs.com/cy-8593/p/12559359.html
Copyright © 2011-2022 走看看