oracleテーブルからユーザーの詳細を取得するためのSQLクエリの以下の出力があります
Select distinct userid from Scope1
USERID
Rakesh
Admin
クエリをさらに簡単に実行できるように、出力を次のようにしたいと思います。私を助けてください。
USERID
'Rakesh','Admin'
ありがとう
oracleテーブルからユーザーの詳細を取得するためのSQLクエリの以下の出力があります
Select distinct userid from Scope1
USERID
Rakesh
Admin
クエリをさらに簡単に実行できるように、出力を次のようにしたいと思います。私を助けてください。
USERID
'Rakesh','Admin'
ありがとう
LISTAGGを使用してみてください。Tim Hall には、これに関する優れたドキュメントがあります。
select LISTAGG(''''||userid||'''', ',')
WITHIN GROUP (ORDER BY userid) userid
from Scope1
組み込みのLISTAGG関数を見てください。
http://docs.oracle.com/cd/E14072_01/server.112/e10592/functions087.htm
クエリでループを実行する関数が必要です。この関数は、必要なデータのコンマ区切り値を返します。何かのようなもの:
str1 := '';
for rec in (select distinct userid from Scope1)
loop
str1 := str1 || rec.userid || ', ';
end loop;
str1 := substr(str1, 1, length(str1) - 2);
以下のクエリは、データをコンマ区切り形式で選択します。
SELECT
RTRIM (XMLAGG (XMLELEMENT (E, userid || ',')).EXTRACT ('//text()'), ',') AS UserID
FROM Scope1 ;
wm_concat を使用するのはどうですか:
SELECT wm_concat(''''||userid||'''') FROM Scope1;