
以下の様なテーブルから
SELECT分で条件をWHERE CODE = '0001' の様に指定して
求まった結果を1つの文字列にしたいのですが
良い方法がありましたら、教えて下さい。
SELECT * from testtbl;
CODE NAME
-------------------------------
0001 AAAA
0001 BBBB
0002 CCCC
0003 DDDD
この例だと、
SELECT NAME FROM testtbl WHERE CODE = '0001'の様な形で
NAMEの部分の結果として,'AAAA,BBBB'の文字列を取得したいです。
ファンクションとかで実現できるでしょうか?
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
ファンクションで実現できます。
入力パラメータ=コードのファンクション(ftest)の例
create or replace function
ftest(ccode in varchar2) return varchar2 is
cout varchar2(1000) := null;
cursor c1 is
select name from testtbl
where code = ccode
order by name;
begin
for c1_rec in c1 loop
if cout is null then
cout := c1_rec.name;
else
cout := cout || ',' || c1_rec.name;
end if;
end loop;
return cout;
end;
/
<実行例>
SQL> select ftest('0001') from dual;
ftest('0001')
--------------------
AAAA,BBBB
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ROW_NUMBER()を使用したデータ取得
-
ストアドプロシージャからアナ...
-
PL/SQLについて
-
ストアドプロシジャからストア...
-
PL/SQLのファンクションでのOUT...
-
Function内に記述したdbms_outp...
-
PL/SQLで連結(||)と結合(=>)の違い
-
ストアド実行時のエラー「参照...
-
callで順に実行されるプロシー...
-
Accessのマクロでモジュールを...
-
Statement ignored というエラー
-
重複するIDのデータを1行にま...
-
Access VBAで行ラベルが定義さ...
-
sqlplusでヘッダーが付かない
-
ODBCリンクの際にACCESSでは読...
-
日付型カラムへのデータINSERT
-
今日の日付が入った行のデータ...
-
SQL*Loaderでのsysdate使用
-
自動連番でカラムを更新したい
-
sqlplusのspoolで空白行出現
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ストアドプロシジャからストア...
-
ストアド実行時のエラー「参照...
-
パッケージ内のファンクション...
-
時間項目を60進数から10進数へ...
-
PL/SQL 実行中のSID
-
ROW_NUMBER()を使用したデータ取得
-
INSERT文の書式
-
ストアドプロシージャからアナ...
-
PL/SQL exceptionを呼び出すには?
-
PL/SQLについて
-
ストアドプロシージャ結果のフ...
-
PL/SQLのファンクションでのOUT...
-
質問:DBMS_OUTPUTの使用方法
-
PL/SQLの例外
-
ストアドプロシージャからスト...
-
プロシージャ 引数 指定
-
PL/SQLで連結(||)と結合(=>)の違い
-
PL/SQLに関して
-
GET_DDLについて
-
ストアドについて
おすすめ情報