多くのプラグラミング言語は大抵の場合、記述したコードを上から下に読み込んでいく。SQLを書き始めた時、エラーの内容がどうにも分からない理由の一つにこの評価順序を理解していないケースがとても多い。

[Sponsored Link]





普通に書いてみる

何はともあれ、よく使う構文を書いてみる。

まずはじめにSELECTから記載しているのが分かりづらい原因なのだが、記述上はそうでもコンピューターはそうではない。ではどのような順序で読み込んでいるか?

評価順序

実際は以下のように読み込まれている。

つまりテーブルをまず読み込み、必要ならテーブル結合をし、フィルタを掛け、必要ならグルーピングを行い、検索条件を設定し、必要なカラムを呼び出し・・・・といった具合だ。

よくSELECTした結果に対してAS句で別名を定義するケースがよくあると思うが、再定義したカラム名をWHERE句の絞り込み条件で設定しても、エラーが帰ってくるのはこの為である。