文とは違うのだよ、文とは

 最近、仕事の関係でOracleマニュアルをつらつらと読む日々を過ごしています。長年つかってきたツールだけど、そんな真剣にマニュアルを読んだことはなかったので、けっこう色々な発見があって面白い。マニュアルとはいえ、文章もそんなに読みづらくなくて、結構よくできています。でも、CASE式のことをCASE文と間違えて書いてあるのを見てうーんと唸ってしまった。

 いや、よくある間違いなんだけど、まさかOracleの公式ドキュメント上でも間違えているとは思わなかった。これ原文は expression と statement のどっちなんだろう? 和訳の時点のうっかりミスの可能性が高いとは思うのだけど。

 これまでもあちこちで繰り返してきたことですけど、SQLのCASE式は、VBとかのCASE文とは違うものです。文は戻り値を返さないし、式の引数にも取れない。たかが名前、と思われるかもしれないけど、でも式という概念の特性と、式と文の違いを理解することは、SQLに限らずプログラミング全般にわたる本質を理解するためにとっても重要なことなんです。だから、普段は何かにつけおおざっぱな私が、この点だけはイジワル小舅と化して口うるさく言うのです。

 頼むよホントに。