2WaySQLにて、以下のようなクエリを書いていた。
SELECT ... FROM /*IF flg == "true"*/ table1 t1 -- メインテーブル -- ELSE table2 t1 /*END*/ WHERE ...
しかし、上記のIF条件が負の場合にELSE句の内容が出力されない。
小一時間悩んだのだが、原因はコメント文を書いてあることにあった。
上記の例で言えば「-- メインテーブル」というコメントがあるが、これが悪さをしておりELSEが解釈されなかった。
以下のようにコメントを削除したらきちんと評価された。
SELECT ... FROM /*IF flg == "true"*/ table1 t1 -- ELSE table2 t1 /*END*/ WHERE ...
IF評価で実行されるコード内にコメントを書くと、ELSEが評価されなくなるようなので注意したい。