为什么SQL语句的排列会导致错误?



在Leetcode中,对于问题https://leetcode.com/problems/big-countries/,如果我给出这个解决方案:

SELECT
name,
population,
area
FROM
World
WHERE
25000000 < population OR 3000000 < area;

执行正确。

然而,这个解决方案:

FROM
World
SELECT
name,
population,
area
WHERE
25000000 < population OR 3000000 < area;

返回错误。

为什么?我认为顺序是无关紧要的,因为SQL服务器将决定自己的执行顺序。第二种顺序也更接近执行的逻辑顺序,详见:https://learn.microsoft.com/en-us/sql/t-sql/queries/select-transact-sql?redirectedfrom=MSDN&view=sql-server-ver15#logical-processing-order-of-the-select-statement .

SQL是一种非常特殊的语言。语言的一部分是SELECT语句,它由各种子句组成。

常用子句有:

  • SELECT
  • FROM
  • WHERE
  • GROUP BY
  • HAVING
  • ORDER BY

这些子句中,SELECT是必需的。FROM在某些数据库中是必需的,其余的是可选的。每个子句都有自己的语法。

SQL语言定义了语句中子句的排序;顺序是固定的。任何其他排序将导致语法错误

这就是语言的定义方式。你不妨问问为什么日语的词序在英语中行不通。这不是英语的定义。

相关内容

  • 没有找到相关文章

最新更新