- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SELECT文での行のばらし方)
SELECT文での行のばらし方
このQ&Aのポイント
- Oracle(9i)でのSELECT文を使用して、行をばらす方法について質問があります。
- テーブル内の数量を1個に固定し、元の数量に応じて行をばらすSELECT文の記述方法について教えてください。
- 伝票テーブルにおいて、SELECT文を使用して行をばらす方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちわ。 Oracle9i Release2 以降であれば。「パイプライン表関数」が使えると思います。 → 数量をパラメータに渡して、「1」を数量分返す関数を作れば良いかと。 詳細は、「PL/SQL ユーザーズガイド及びリファレンス」で確認して下さい。 PDF 形式のマニュアルをOTN Japan で公開していますので、マニュアルは そちらで入手して下さい。
- 参考URL:
- http://otn.oracle.co.jp/
その他の回答 (1)
- osamuy
- ベストアンサー率42% (1231/2878)
回答No.1
試さないで書いてますが、 [T_EXPAND] ----- N V ----- 1 1 2 1 3 1 4 1 5 1 以下略 みたいなテーブルを作っておいて、 select t.伝票NO,t.商品NO,e.V '数量' from テーブル t, T_EXPAND e where t.数量<=e.N; ――とか。
質問者
お礼
ご回答ありがとうございます。 私もご回答いただいた内容と同様に、別表を直積させて数量の比較抽出を試みました。 しかし、数量が別表で用意しておいた数値を超過した場合や、直積させることによる負荷をさけたいというわがままがございましたので、 贅沢にも1つのSELECT文で記述できる方法がないかと投稿いたしました。
お礼
ご回答ありがとうございます。 SELECT文での行分割は無理のようですね。 スッキリいたしました。 マニュアルは入手いたしましたので、よく読んでみます。 ありがとうございました。