これはうそつきの要求ですが、私がしようとしているのは、複数のレコードを単一の列に戻して、Oracle/SQL - 複数のレコードを1つにまとめる[文字列集約]
は、だから私は、カラム、地域などの他の列は、罰金ですが、この
<option value="1234">Chicago</option><option value="567">Palatine</option><option value="234">Algonquin</option><option value="987">Wauconda</option>
のような単一の列に戻って単一のレコードを見たいのですが、この
REGION CITY SID
-------------------
1 Chicago 1234
1 Palatine 567
1 Algonquin 234
1 Wauconda 987
のような表を与えられましたどのようにこれを行うにはどのような考え?私は、だから私はこのコードを介さ見つけオーケー表形式が少し変更されていますが、考え方は同じ
COUNTRY STORECODE STORE_NAME
------------------------------
USA 1234 Chicago
USA 567 Palatine
CAN 987 Toronto
ある
をオラクル9iのを実行していることだし、PL/SQLでこれを行うことはできませんリンクは
SELECT COUNTRY,
LTRIM(MAX(SYS_CONNECT_BY_PATH(STORECODE,','))
KEEP (DENSE_RANK LAST ORDER BY curr),',') AS COUNTRY_HTML
FROM (SELECT COUNTRY,
STORECODE,
ROW_NUMBER() OVER (PARTITION BY COUNTRY ORDER BY STORECODE) AS curr,
ROW_NUMBER() OVER (PARTITION BY COUNTRY ORDER BY STORECODE) -1 AS prev
FROM tablename)
GROUP BY COUNTRY
CONNECT BY prev = PRIOR curr AND COUNTRY = PRIOR COUNTRY
START WITH curr = 1;
を記載されていると私はそれを実行したとき、私はこの出力を見る
COUNTRY COUNTRY_HTML
--------------------
USA 1234,567
CAN 987
私の考えから別の内側の選択プルを持っているだけでだった私は、このように必要なHTMLと一緒にストアコードとSTORE_NAMEの私の連結を行う場所を選択...
SELECT COUNTRY,
LTRIM(MAX(SYS_CONNECT_BY_PATH(RECORD_HTML,','))
KEEP (DENSE_RANK LAST ORDER BY curr),',') AS COUNTRY_HTML
FROM (SELECT COUNTRY,
RECORD_HTML,
ROW_NUMBER() OVER (PARTITION BY COUNTRY ORDER BY RECORD_HTML) AS curr,
ROW_NUMBER() OVER (PARTITION BY COUNTRY ORDER BY RECORD_HTML) -1 AS prev
FROM (SELECT COUNTRY, '<option value="' || STORECODE || '">' || STORE_NAME || '</option>' AS RECORD_HTML FROM tablename))
GROUP BY COUNTRY
CONNECT BY prev = PRIOR curr AND COUNTRY = PRIOR COUNTRY
START WITH curr = 1;
私たちのフロントエンド環境が受け入れるんがクエリで結果を確認しようとするとエラーが表示されます:リソースが無効です。表示する前に、クエリを修正する必要があります。
エラーはおそらく役に立ちませんが、なぜ私のバージョンが機能していないのでしょうか?
ありがとうございます!
あなたのアプリケーションでこれを実行できないと本当に本当にありますか? –
[Oracleで連結文字列を生成するための高速な方法]の複製が可能です(http://stackoverflow.com/questions/7531001/fast-way-to-generate-concatenated-strings-in-oracle) –
WW。私は確かにそれを推進しようとしていますが、私たちが学習の練習としてやっていけない場合、それを行うことができれば幸いです。 – dscl