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