たちまち。

即席で役に立つこと。

2WaySQLのELSEが評価されない(出力されない)

 

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が評価されなくなるようなので注意したい。