1

以下に示すように、ダミーという名前のテーブルがあります。

No.   Name
1     ABC
2     NMD
2     SDSDS
1     23ererer

Name今、私はすべての列を特定の番号で連結したかった

例のために。私は私の出力として1欲しいですABC23ererer

これは、PL-SQL を使用せずに ORACLE(SQL) で実行されます。

これはどのように行うことができますか?

4

4 に答える 4

1

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フィドルでのデモを参照してください

于 2013-07-04T05:38:49.060 に答える
1

これは役立つかもしれません...

select NO,
  listagg(NAME, ',') within group (order by NAME) as name
from TableName
group by NO

または、これを確認してください

于 2013-07-04T05:37:32.557 に答える
0
SELECT "No.", LISTAGG(Name, ',') WITHIN GROUP (ORDER BY "No.") AS Name
FROM TableName
GROUP BY "No.";
于 2013-07-04T05:40:24.563 に答える
-4

これを試して :

数字を選択+' '+
名前 FROM テーブル名

于 2013-07-04T05:38:11.893 に答える