database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 41901 게시물 읽기
No. 41901
그룹 관련 질문 입니다.
작성자
봉달이
작성일
2022-12-27 10:04ⓒ
2022-12-27 12:57ⓜ
조회수
373

안녕하세요..

여러 고수님들 부탁 드립니다. 

감사합니다. 


아래와 같은 결과를 내고 싶으면 sql 어떻게 작성해야 될까요??


--테이블


필드명 1        필드명2

aaa            a사업    

bbb            b사업    

ccc            c사업    

ddd            d사업    

eee            e사업    

fff            f사업    



결과


필드명1    필드명2

aaa      ,a사업 ,b사업 ,c사업 ,d사업 ,e사업 ,f사업 

bbb      ,a사업 ,b사업 ,c사업 ,d사업 ,e사업 ,f사업 

ccc      ,a사업 ,b사업 ,c사업 ,d사업 ,e사업 ,f사업 

ddd      ,a사업 ,b사업 ,c사업 ,d사업 ,e사업 ,f사업 

eee      ,a사업 ,b사업 ,c사업 ,d사업 ,e사업 ,f사업 

fff      ,a사업 ,b사업 ,c사업 ,d사업 ,e사업 ,f사업 


너무 감사합니다.

그럼 혹시 아래와 같은 결과 값을 얻고자 할 때는 sql 작성법이 어찌 될까요??


첫줄은 null 값이 아닙니다. 


결과


필드명1    필드명2

aaa      

         a사업

         b사업 

         c사업 

         d사업 

         e사업 

         f사업 

bbb

         a사업

         b사업 

         c사업 

         d사업 

         e사업 

         f사업 

ccc

         a사업

         b사업 

         c사업 

         d사업 

         e사업 

         f사업 

ddd

         a사업

         b사업 

         c사업 

         d사업 

         e사업 

         f사업 

eee

         a사업

         b사업 

         c사업 

         d사업 

         e사업 

         f사업 

fff

         a사업

         b사업 

         c사업 

         d사업 

         e사업 

         f사업 





 

이 글에 대한 댓글이 총 2건 있습니다.

첫줄이 null값인지요? 아래처럼 해봤습니다. 버전에 따라 wm_concat 이나 listagg 도 가능하네요.


with t (f1, f2) as (

select '', '' from dual union all

select 'aaa', 'a사업' from dual union all

select 'bbb', 'b사업' from dual union all

select 'ccc', 'c사업' from dual union all

select 'ddd', 'd사업' from dual union all

select 'eee', 'e사업' from dual union all

select 'fff', 'f사업' from dual

)

select f1, SUBSTR(agg, 1, length(agg) - 1) agg

from (select XMLAgg(XMLElement(x, ',', f2) ORDER BY f1 ).Extract('//text()') agg from t), t

정상규(pajama)님이 2022-12-27 10:38에 작성한 댓글입니다.
이 댓글은 2022-12-27 10:38에 마지막으로 수정되었습니다.
WITH t AS
(
SELECT 'aaa' c1, 'a사업' c2 FROM dual
UNION ALL SELECT 'bbb', 'b사업' FROM dual
UNION ALL SELECT 'ccc', 'c사업' FROM dual
UNION ALL SELECT 'ddd', 'd사업' FROM dual
UNION ALL SELECT 'eee', 'e사업' FROM dual
UNION ALL SELECT 'fff', 'f사업' FROM dual
)
SELECT c1
     , LISTAGG(c2, ',') WITHIN GROUP(ORDER BY c1) OVER() c2
  FROM t
;

WITH t AS
(
SELECT 'aaa' c1, 'a사업' c2 FROM dual
UNION ALL SELECT 'bbb', 'b사업' FROM dual
UNION ALL SELECT 'ccc', 'c사업' FROM dual
UNION ALL SELECT 'ddd', 'd사업' FROM dual
UNION ALL SELECT 'eee', 'e사업' FROM dual
UNION ALL SELECT 'fff', 'f사업' FROM dual
)
SELECT DECODE(LEVEL, 1, c1) c1
     , DECODE(LEVEL, 2, c2) c2
  FROM t 
 CONNECT BY LEVEL <= 2
;
마농(manon94)님이 2022-12-27 14:45에 작성한 댓글입니다.
이 댓글은 2022-12-27 14:45에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
41929인덱스를 logging 모드로 운영할 필요가 있을까요? [5]
나그네
2023-01-17
116
41928오라클 sched.jobs 생성시 시간 설정문의 [2]
량디
2023-01-05
203
41901그룹 관련 질문 입니다. [2]
봉달이
2022-12-27
373
41900세로 데이터를 가로로 표시관련 문의 [1]
진태만
2022-12-19
453
41899REGEXP_LIKE 정규표현식에 NOT 조건 사용 질문입니다. [1]
김지훈
2022-12-07
455
41898시간 대비 값이 증감여부 확인하여 데이터 축출 관련 [1]
shitline
2022-12-02
483
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2022 DSN, All rights reserved.
작업시간: 0.063초, 이곳 서비스는
	PostgreSQL v14.2로 자료를 관리합니다