2010年12月31日

[pgsql-jp: 40649]ストアドファンクションでのCASE文作成方法

?元になるテーブル[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;

というように作成したいのですが
ストアドファンクションでの作成方法を教えてください。


投稿者 xml-rpc : 2010年12月31日 09:24
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/101027
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。