例如,我被告知WHERE将在GROUP BY之前执行,HAVING将在之后执行,所以代码行应该按照这个顺序编写。我怎么知道或者从哪里读来知道PostgreSQL(或其他类型的SQL)中的所有函数是按照什么顺序编写和执行的?
gr8qqesn1#
SQL标准规定了SELECT语句不同部分求值的逻辑顺序,您应该从任何有关该主题的好书中了解这一点。但请注意,实际执行可能会有所不同。例如,WHERE条件可以在FROM子句完成 * 之前 * 执行,即使逻辑顺序正好相反。只要不更改查询结果,这种转换就可以。要查看单个查询中操作的执行顺序,请查看查询的 * 执行计划 *,该计划可以通过PostgreSQL中的EXPLAIN命令获得。
SELECT
WHERE
FROM
EXPLAIN
1条答案
按热度按时间gr8qqesn1#
SQL标准规定了
SELECT
语句不同部分求值的逻辑顺序,您应该从任何有关该主题的好书中了解这一点。但请注意,实际执行可能会有所不同。例如,
WHERE
条件可以在FROM
子句完成 * 之前 * 执行,即使逻辑顺序正好相反。只要不更改查询结果,这种转换就可以。要查看单个查询中操作的执行顺序,请查看查询的 * 执行计划 *,该计划可以通过PostgreSQL中的
EXPLAIN
命令获得。