- ベストアンサー
SQL文
Oracle初心者なのですみません 助けてください。 TBL 日付,区分,開始番号,終了 2006/10/11 ,A,1,10 2006/10/11 ,B,20,22 見たいなTBLがあって、日付を指定すると 開始・終了の範囲を出力するSQL文を書きたいのですが・・・ 出力イメージは 2006/10/11,A,1 2006/10/11,A,2 2006/10/11,A,3 2006/10/11,A,4 | 2006/10/11,A,10 でこれをそのまま、新規TBLに追加したいのですが・・・・
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ソースとなるレコード1行に対してN行を生成するにはループ処理が必要で、通常のDMLでは無理と思います。 PL/SQLのサンプルを書いてみましたので参考になれば。 DECLARE CURSOR C IS SELECT "日付", "区分", "開始番号", "終了" FROM "TBL" WHERE "日付" BETWEEN '2006-10-11' AND '2006-10-11' ; LOOP_IDX NUMBER; BEGIN FOR R IN C LOOP FOR LOOP_IDX IN R."開始番号"..R."終了" LOOP INSERT INTO "新規TBL" ("日付", "区分", "番号") VALUES (R."日付", R."区分", LOOP_IDX) ; END LOOP; END LOOP; COMMIT; END;
その他の回答 (1)
- kabilunlun
- ベストアンサー率34% (155/446)
SQLの実行は何で行うのでしょうか。VisualBasicなどの開発言語、またはOracle側だけ?
補足
OracleのSQLのみでやりたいんですよ
お礼
やっぱり難しいのですね PL/SQLを使ってみます ありがとうございました