以下に示すように、ダミーという名前のテーブルがあります。
No. Name
1 ABC
2 NMD
2 SDSDS
1 23ererer
Name
今、私はすべての列を特定の番号で連結したかった
例のために。私は私の出力として1
欲しいですABC23ererer
これは、PL-SQL を使用せずに ORACLE(SQL) で実行されます。
これはどのように行うことができますか?
LISTAGG は oracle10g ではサポートされていません。10g を使用している場合は、次のクエリが役立つと思います。
select No, rtrim(Name,',') Name
from ( select No
, Name, rn
from yourtable
model
partition by (No)
dimension by (row_number() over
(partition by No order by Name) rn
)
measures (cast(Name as varchar2(40)) Name)
rules
( Name[any] order by rn desc = Name[cv()]||''||Name[cv()+1]
)
)
where rn = 1
order by NO
SQLフィドルでのデモを参照してください
これは役立つかもしれません...
select NO,
listagg(NAME, ',') within group (order by NAME) as name
from TableName
group by NO
または、これを確認してください
SELECT "No.", LISTAGG(Name, ',') WITHIN GROUP (ORDER BY "No.") AS Name
FROM TableName
GROUP BY "No.";
これを試して :
数字を選択+' '+ 名前 FROM テーブル名