簡體   English   中英

如何知道PostgreSQL中要執行的函數順序?

[英]How to know the order of functions to be executed in PostgreSQL?

例如,有人告訴我 WHERE 會在 GROUP BY 之前執行,HAVING 會在 GROUP BY 之后執行,所以代碼行應該按照這個順序來寫。 我怎么知道或者我應該從哪里閱讀以了解 PostgreSQL(或其他類型的 SQL)中的所有函數的編寫和執行順序?

SELECT語句的不同部分的評估邏輯順序由 SQL 標准規定。 你應該從任何關於這個主題的好書中學到這一點。

但是請注意,實際執行可能會有所不同。 例如,可以在FROM子句完成之前執行WHERE條件,即使邏輯順序是相反的。 只要不改變查詢結果,這樣的轉換就很好。

要查看單個查詢中操作的執行順序,請查看查詢的執行計划,可以使用 PostgreSQL 中的EXPLAIN命令獲得。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM