• group by 和where 条件后面不能用刚设置的别名。


    select count(*),c_xy_bj a from z_user group by c_xy_bj     这个group by后面不能使用c_xy_bj 字段的别名a,只有外面再嵌套select查询才能使用字段别名a
    select c_xy_bj a from z_user where c_xy_bj = 'Y'      这个where后面不能使用c_xy_bj 字段的别名a,只有外面再嵌套select查询才能使用字段别名a

    同理,两个字段加减乘除算出来的值,如果取别名,想通过别名来做查询条件,那么也只能再外面嵌套select查询时才能用做条件;但是如果用原字段来查询是可以的。

    select c_usernm,c_xy_bj,c_usernm||c_xy_bj ub from z_user where c_usernm||c_xy_bj = '陈明辉Y'      这个sql是可以的。

    select c_usernm,c_xy_bj,c_usernm||c_xy_bj ub from z_user where ub = '陈明辉Y'    这个sql是不行的。

    1.where 条件不能放在 group by后面,比如这个sql就是错误的:select count(*),c_xy_bj a from z_user group by c_xy_bj where c_xy_bj = 'Y'

    2.group by后面只能使用having来做查询,having查询本来也是分组之后进行的查询,接下来这两个sql才是对的:select count(*),c_xy_bj a from z_user group by c_xy_bj having c_xy_bj = 'Y'

    select count(*) cnt,c_xy_bj a from z_user group by c_xy_bj having count(*) = 28

    3.对分组函数得到的结果进行查询不能使用where,只能使用having,实在没有使用group by进行分组的情况下也可以使用having来查询分组函数得到的结果

    select count(*) cnt from z_user where count(*) = 5062 这个sql是错的

    select count(*) cnt from z_user having count(*) = 5062 这个sql是对的

  • 相关阅读:
    【LOJ】#3034. 「JOISC 2019 Day2」两道料理
    vue学习笔记(七)组件
    vue学习笔记(五)条件渲染和列表渲染
    vue学习笔记(一)入门
    JavaScript学习总结之函数
    JavaScript学习总结之对象的深拷贝和浅拷贝
    javascript学习总结之Object.assign()方法详解
    ES6学习总结之变量的解构赋值
    ES6学习总结之let和const命令
    javascript学习总结之Object.keys()方法详解
  • 原文地址:https://www.cnblogs.com/shenzhichipingguo/p/8681759.html
Copyright © 2020-2023  润新知