SQL case语句执行顺序

时间:2018-03-30 15:30:09

标签: sql

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

2 个答案:

答案 0 :(得分:0)

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>

仅供参考我已添加案例陈述。在一个简单的查询案例中,在给定的地方执行。

答案 1 :(得分:0)

使用示例查询...

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'
  1. 首先,执行FROM子句以获取所有可用行
  2. 然后,执行WHERE子句以仅抓取适用的行
  3. 然后,执行SELECT子句以获取特定数据。
  4. 因此,CASE语句最后执行,当它选择该特定列时,它将扫描该列并执行CASE语句
  5. 希望这有帮助。