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 38739 게시물 읽기
No. 38739
반복되는 특정문자열 한개만 두고 삭제할수있을까요?
작성자
이동호(ssamldh)
작성일
2011-07-26 15:26ⓒ
2011-07-26 15:45ⓜ
조회수
4,184

고민하다 좋은방법이 없을까 해서 질문드립니다.

SUBSTR(XMLAGG(XMLELEMENT(x, ',', '['||DECODE(A.JUYA_GBCD,'1','주','야')||']'||GYOSI) ORDER BY YEAR,HAKGI,TUTORING_GBCD,TUTORING_SEQ,YOIL_GBCD,JUYA_GBCD,GYOSI).EXTRACT('//text()'),2) AS GYOSI       

이런 식으로해서 로우단위로 들어가있는(아래와같은) data를 한컬럼으로 표현했습니다.

--------------------------------------------

요일     주야          교시        

--------------------------------------------

월            1                1

월            1                 2

월            2                 1

월            2                2

---------------------------------------

 

문제는 결과가 [주] 1,[주]2,[야] 1,[야] 2     이렇게 나오는데  

이것을 반복되는 [주] 또는 [야]를 한번만 표기 가능할까요? 아래와 같은 형태로

[주]1,2 [야]1,2

주야구분은 1 : 주간 , 2: 야간 고정값입니다.

요일은 월화수 여러개가 들어갈수있으나 요일별로 하나의 로우컬럼에 표기됩니다.

이 글에 대한 댓글이 총 2건 있습니다.
WITH t AS
(
SELECT 1 year, 1 hakgi, 1 tutoring_gbcd, 1 tutoring_seq
     , '월' yoil_gbcd, 1 juya_gbcd, 1 gyosi FROM dual
UNION ALL SELECT 1, 1, 1, 1, '월', 1, 2 FROM dual
UNION ALL SELECT 1, 1, 1, 1, '월', 2, 1 FROM dual
UNION ALL SELECT 1, 1, 1, 1, '월', 2, 2 FROM dual
UNION ALL SELECT 1, 1, 1, 2, '월', 1, 1 FROM dual
UNION ALL SELECT 1, 1, 1, 2, '월', 1, 2 FROM dual
UNION ALL SELECT 1, 1, 1, 2, '월', 1, 3 FROM dual
)
SELECT year, hakgi, tutoring_gbcd, tutoring_seq, yoil_gbcd
     , SUBSTR(XMLAGG(XMLELEMENT(x, gyosi) ORDER BY juya_gbcd)
             .EXTRACT('//text()'), 2) gyosi
  FROM (
        SELECT year, hakgi, tutoring_gbcd, tutoring_seq, yoil_gbcd
             , juya_gbcd
             , DECODE(juya_gbcd, 1, ' [주]', 2, ' [야]')
            || SUBSTR(XMLAGG(XMLELEMENT(x, ',', gyosi) ORDER BY gyosi)
                     .EXTRACT('//text()'), 2) gyosi
          FROM t
         GROUP BY year, hakgi, tutoring_gbcd, tutoring_seq, yoil_gbcd
             , juya_gbcd
        )
 GROUP BY year, hakgi, tutoring_gbcd, tutoring_seq, yoil_gbcd
;
마농(manon94)님이 2011-07-26 16:09에 작성한 댓글입니다.

나누고자 하는걸별로 그룹지어주고 다시한번 밖에서 최종원하는 형태로 그룹을 지워져야 깔끔해지네요

 마농님 바쁜시간중에 감사합니다. ^^

 

 

이동호(ssamldh)님이 2011-07-26 17:11에 작성한 댓글입니다.
이 댓글은 2011-07-26 17:24에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
38742같은필드 나나내지 않기..오라클8 [4]
아폴론
2011-07-27
4259
38741우리가 사용하는 서버 프로그램이 에러를 냈습니다. [1]
소금
2011-07-27
4116
38740재귀쿼리 질문드립니다. 하루동안 삽질하구있네요 [2]
노정균
2011-07-26
6137
38739반복되는 특정문자열 한개만 두고 삭제할수있을까요? [2]
이동호
2011-07-26
4184
38738쿼리문의 [2]
레이첼
2011-07-26
4138
38737CREATE TABLE ~ AS SELECT 시 컬럼 크기 변경 [2]
장동신
2011-07-26
4556
38736중복제거 질문 ^^ 급합니다. [1]
이병헌
2011-07-26
4546
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다