where与having可以一起使用吗


SQL语句中,Where having 区别大家并不陌生,同是用于条件筛选,WHERE作用于表中实际存在的列,HAVING作用于虚拟列或者子查询的列。不赘述。

 

昨天遇到一个业务需求,需要同时用WHERE筛选现有表中的列,同时需要对一个函数返回值进行进行条件限制。莫名的报错,然后baidu,google了一下,关键词where,having,同用;然后一大堆全是讲它们分别作用于什么,至于它们能不能同用的问题一个也没有。

 

然后今天早上过来,莫名的又可以了。它们可以同用。

 

运行结果:

 

但是where 必须放在having之前,而不是相反,不然就会报错。

 

同样的,order by 也可以用于虚拟列或者子查询的列进行排序。

 

测试环境为mysqlORACLE没有测过。可能因为这是个无关紧要的知识点,所以网上才没有这方面的资料。但由于昨天的报错,决定还是记录下来。

 

 

PS:完全可以通过子查询来完成。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM