SQL-看看则个having
mysql> select ( case when VM_NC = '' then VM_ZONE when VM_ZONE = '' then VM_NC else concat(VM_NC, '/', VM_ZONE) end ) as queryname from T_APP_CLOUD_DEVICE where queryname = '123';
ERROR 1054 (42S22): Unknown column 'queryname' in 'where clause'
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
where 只能使用表中定义的列或者使用这些列的表达式,所以你第一个SQL本身就是错误的。
having SQL标准要求必须引用GROUP BY子句中的列或用于总计函数中的列,不过也允许使用select中定义的列。也就是说第二个SQL语法上是正确的。
最好还是按照标准的用法避免歧义
where 是对表的查询条件做限制
having 是在汇总后的结果集里再做过滤