PostgreSQLだけというわけじゃなくて、いまのいままで(自分が)知らなかったのがびっくりというネタ。
それは、SQL文での CASE式。昔々、Accessで IIF(三項演算子)は使ったことがあったけど、SQLに IIFがないというのも、これを書こうと思って、ググって知ったくらい。
SELECT name, CASE sex WHEN 1 THEN '男' WHEN 2 THEN '女' ELSE '未記入' END as sex FROM test_tbl
ほかの使い方はこちら「SQL の CASE 式って知ってますか?」参照。
SELECT count(*), CASE code WHEN 'M' THEN '男性' WHEN 'F' THEN '女性' ELSE 'オカマ?' END FROM table1 GROUP BY code; SELECT SUM( CASE WHEN code = 'M' THEN 1 ELSE 0 END ), -- 男性の人数 SUM( CASE WHEN code = 'F' THEN 1 ELSE 0 END ) -- 女性の人数 FROM table1; CONSTRAINT check_salary -- 平社員は給与が20万円以下という制約の例 ( CASE WHEN code = '平社員' THEN CASE WHEN salary = 100000 THEN 販売価格 * 0.9 ELSE 販売価格 END;