SQL case语句的执行顺序

SQL case语句的执行顺序,sql,Sql,case语句是在where子句之前还是之后执行的,还是在group by子句之前执行的?我可以在任何地方找到case语句的操作顺序。选择DISTINCT SELECT DISTINCT <TOP_specification> <select_list> <case_statements> FROM <left_table> <join_type> JOIN <right_table> ON <join_conditio

case
语句是在where子句之前还是之后执行的,还是在group by子句之前执行的?我可以在任何地方找到case语句的操作顺序。

选择DISTINCT
SELECT DISTINCT <TOP_specification> <select_list>
<case_statements>
FROM <left_table>
<join_type> JOIN <right_table>
ON <join_condition>
WHERE <where_condition>
GROUP BY <group_by_list>
HAVING <having_condition>
ORDER BY <order_by_list>
从…起 参加 在…上 哪里 分组 有 订购人

我添加了案例陈述,仅供参考。在一个简单的查询中,case在给定的位置执行

使用示例查询

SELECT
    tblfoo.A,
    (CASE 
    WHEN tblfoo.B LIKE 'Hello' THEN 'Greeting'
    WHEN tblfoo.B LIKE 'Goodbye' THEN 'Goodbye'
    ELSE 'Neither' 
    END) AS "Word"

FROM
    tblFoo

WHERE
    tblFoo.Name = 'Example'
  • 首先,执行FROM子句以获取所有可用行
  • 然后,执行WHERE子句以仅获取适用的行
  • 然后,执行SELECT子句以获取特定数据
  • 因此,CASE语句最后执行,当它选择特定列时,它将扫描该列并执行CASE语句

  • 希望这会有所帮助。

    omg将介绍sql的基本知识
    case
    可以在sql语句中的任意位置使用。您需要提供您的代码、期望值和当前结果,才能获得任何有意义的帮助。如果
    案例
    位于
    何处
    分组依据
    订购依据
    拥有
    ,该怎么办。您甚至可以在联接的上的中有一个大小写。这些都将在不同的时间进行评估。你是对的。我刚刚给出了一些基本知识,因为提问者对执行顺序没有基本概念,那么group by呢?如果您有group in case语句?如果添加了group by,group by子句将发生在SELECT AGREGATED语句之后