dポイントプレゼントキャンペーン実施中!

SQLで質問です。
下記のようなテーブル(TBL) があったとして、

YMD HIN
20110520 '商品3'
20110520 '商品5'
20110520 '商品6'
20110522 '商品4'
20110522 '商品5'

VIEWのみで以下ような形に見せるようなVIEWって
VIEWだけで可能でしょうか。

YMD    HIN
20110520 '商品3 商品5 商品6'
20110522 '商品4 商品5'

グルーピングキーYMD単位でHIN||' '||HIN||' '||・・・みたいに
データが存在するだけ連結していくようなイメージです。

ストアドなどでループして連結していく以外にVIEWのみで実現できるような
SQL書けるよという人いましたら教えていただけないでしょうか。

以上よろしくお願い致します。

A 回答 (2件)

書けなくはないですが……



SELECT YMD,
LTRIM(SYS_CONNECT_BY_PATH(HIN, ' '), ' ') AS HIN
FROM (
SELECT YMD, HIN,
COUNT(*) OVER (PARTITION BY YMD) AS cnt,
ROW_NUMBER() OVER (PARTITION BY YMD ORDER BY HIN) AS rn
FROM TBL
)
WHERE LEVEL = cnt
START WITH rn = 1
CONNECT BY PRIOR YMD = YMD AND PRIOR rn = rn - 1
    • good
    • 0
この回答へのお礼

どうもありがとうございます。参考にさせていただきます。

お礼日時:2011/05/25 18:45

隠し関数「wmsys.wm_concat」を使うか、XML関数を使う。


(隠し関数はサポート対象外なので使うなら自己責任で)
http://otn.oracle.co.jp/forum/thread.jspa?thread …
http://d.hatena.ne.jp/you_w/20081125/1228305335
    • good
    • 0
この回答へのお礼

どうもありがとうございます。参考にさせていただきます。

お礼日時:2011/05/25 18:45

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