[pgsql-jp: 40649] ストアドファンクションでのCASE文作成方法
yukihito miso
mail @ rishiri.info
2010年 12月 31日 (金) 09:24:00 JST
?元になるテーブル[sector]
ID n_id s_id sector
1 2 1 第4P
2 2 2 第9P
3 2 3 GP
4 3 1 第3P
5 3 2 第5P
6 3 3 第8P
7 3 4 GP
このようなテーブル[sctor]から
よろしくおねがいします。
たとえばn_idが2の場合なら
INSERT INTO tmp_records2 SELECT id, name, phonetic, age, gender, sg
, CASE s4 WHEN '00:00:00' THEN '0:00:00' ELSE s4::TIME - '06:00:00'::TIME
END AS s4
, CASE s9 WHEN '00:00:00' THEN '0:00:00' ELSE s9::TIME - '06:00:00'::TIME
END AS s9
, CASE sg WHEN '00:00:00' THEN '10:00:00' ELSE sg::TIME - '00:00:00'::TIME
END AS record
, n_id, number, award_name FROM tmp_records1 WHERE n_id = :n_id ORDER BY
record ASC, id ASC;
たとえばn_idが3の場合なら
INSERT INTO tmp_records2 SELECT id, name, phonetic, age, gender, sg
, CASE s3 WHEN '00:00:00' THEN '0:00:00' ELSE s3::TIME - '06:00:00'::TIME
END AS s3
, CASE s5 WHEN '00:00:00' THEN '0:00:00' ELSE s5::TIME - '06:00:00'::TIME
END AS s5
, CASE s8 WHEN '00:00:00' THEN '0:00:00' ELSE s8::TIME - '06:00:00'::TIME
END AS s8
, CASE sg WHEN '00:00:00' THEN '10:00:00' ELSE sg::TIME - '00:00:00'::TIME
END AS record
, n_id, number, award_name FROM tmp_records1 WHERE n_id = :n_id ORDER BY
record ASC, id ASC;
というように作成したいのですが
ストアドファンクションでの作成方法を教えてください。
pgsql-jp メーリングリストの案内