codeigniter + postgresql での話。
$this->db->select(“CASE a WHEN 0 THEN ‘zero’ ELSE ‘other’ END”);
てな感じで、CASE句を入れて実行したらエラーに。
なんで?とエラーのSQLを見てみると、
“CASE” a WHEN 0 THEN ‘zero’ ELSE…
と、CASE が ” で囲まれカラム扱いされてる・・・。
$this->db->select(“(CASE a WHEN 0 THEN ‘zero’ ELSE ‘other’ END)”);
と、CASE句を括弧で囲むと無事実行された。
これ、バグじゃないの?
$this->db->order_by()の中でCASEが使えないと思ったら、そういうことだったんですね…参考になりました、ありがとうございます!