論理実行順とは
SQL は書かれた順序と実行される順序が違う。書く順は
SELECT → FROM → WHERE → GROUP BY → HAVING → ORDER BY だが、
論理的な実行順は:
FROM → JOIN → WHERE →
GROUP BY → HAVING → SELECT →
ORDER BY → LIMIT
このツールは解説を論理実行順で並べる。これが分かると 「なぜ WHERE で SELECT のエイリアスが使えないのか」(WHERE は SELECT より先に実行される)、 「なぜ集計列の絞り込みは HAVING で WHERE ではないのか」が腑に落ちる。
実装: 自前の tokenizer + 再帰下降パーサ (SELECT のサブセット)。 AND/OR の優先順位、IN/BETWEEN/LIKE/IS NULL、JOIN、集計関数に対応。35 個の Node テスト付き。