一回も披露したことのない豆知識

ORACLE10gを使用しています。

似た内容の質問があったので
QNo.1828920:検索対象のデータが「複数レコード」を「1レコード」として獲得するSQL
も見てみたのですが、実際には他にも抽出条件や抽出項目が多いので、
できればGROUP BYは使いたくないと思い、質問させていただきます。


・TABLE)イメージ
CD|NO|NM
10 | 0 | あ
10 | 1 | い
10 | 2 | う
10 | 3 | え

・前提
画面でCD:10およびNO:0~NO:2と範囲指定します。

・求める結果
下記のように範囲指定したNO分、NMを横並びに抽出したいです。
10,あ,い,う

・考えた内容
VBを使用しているのでプログラム中で動的に抽出項目、FROM句、WHERE句を
追加しようと考えました。
TABLE.NOは2桁なので最大指定で0~99になる可能性があります。その場合FROM句のTABLE別名が99個に
なってしまいますが、書き方として問題ないのか不安です。
何かアドバイスがありましたらお願いします。

・SQL案
SELECT
TABLE0.CD,
For I = 0 To 2
TABLE & I.NM AS NM & I,
Next K

FROM
For J = 0 To 2
TABLE TABLE & I,
Next K

WHERE
TABLE0.CD = 10 AND

For K = 0 To 2
TABLE & K.NO = K AND
Next K

A 回答 (2件)

No1です。

すいません、ちょっと違うみたい。
    • good
    • 0
この回答へのお礼

アドバイスありがとうございました。
今日中に仕上げたかったので、自分で考えた方法でいくことにしました。

お礼日時:2006/11/08 23:28

select


CD
,decode(NO,0,NM,null)
,decode(NO,1,NM,null)
,decode(NO,2,NM,null)
from table
where cd = :cd
and no between :no1 and :no2

decodeの部分を指定された条件で作成してあげれば良いのでは
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


おすすめ情報