zoukankan      html  css  js  c++  java
  • SQL 中 WHERE 和 HAVING 的区别

    WHERE

    • 是一个约束声明,用于约束来自数据库的数据(即在调用相关数据的时候,这些数据已经被过滤了一部分)
    • 是在返回结果之前起作用的
    • 后面不能跟 聚合函数,因为 WHERE 是对逐条记录进行筛选,聚合后就无法实现功能

    HAVING

    • 是一个过滤声明,
    • 返回结果集之后,对结果集进行过滤,以显示过滤后的结果
    • 后面可以跟聚合函数

    书写顺序

    SELECT[DISTINCT]
    FROM
    JOIN(如LEFT JOIN)
    ON
    WHERE
    GROUP BY
    HAVING
    UNION
    ORDER BY
    LIMIT


    常见的聚合函数有:count(), sum(), min(), max(), avg()
    其中,min(), max() 还可以对字符串进行操作
    聚合函数常配合group by 使用
    当select的内容不仅包含 聚合函数列,还包含其他列时,必须使用grou by 函数。
    如 : select id, max(score) from t1 group by id;


    在使用avg(col1) 时,如果col1 中有 null 值,该行会被忽略。
    如果想要把null当做0,那么可以使用IsNull函数,语法如下:
    avg(IsNull(col1,0))


  • 相关阅读:
    RecyclerView 源码分析(一) —— 绘制流程解析
    sqlserver outer join
    获取最后一个标签 xpath
    pytesseract
    pytesseract代码优化
    sql server recursion
    sql
    sql server
    mssql乱码问题
    SQL
  • 原文地址:https://www.cnblogs.com/talented/p/14840601.html
Copyright © 2011-2022 走看看