문자열 연결하는 방법

SQL 2009. 11. 29. 23:33

-- 8i --
SELECT num
     , MIN(DECODE(rn,1,''''||data||''''))
    || MIN(DECODE(rn,2,','''||data||''''))
    || MIN(DECODE(rn,3,','''||data||''''))
  FROM (SELECT num, data
             , ROW_NUMBER() OVER(PARTITION BY num ORDER BY data) rn
          FROM t
        )
 GROUP BY num
;

-- 9i --
SELECT num
     , SUBSTR(MAX(SYS_CONNECT_BY_PATH(''||data||'',',')),2) data
  FROM (SELECT num, data
             , ROW_NUMBER() OVER(PARTITION BY num ORDER BY data) rn
          FROM t
        )
 START WITH rn = 1
 CONNECT BY PRIOR num = num
        AND PRIOR rn = rn - 1
 GROUP BY num
;

-- 10G --
SELECT num
     , REPLACE(SUBSTR(data,2),'@','''') data
  FROM
(
SELECT num,
XMLAGG(XMLELEMENT(x,',@'||data||'@') ORDER BY data).EXTRACT('//text()').GetStringVal() data
  FROM t
 GROUP BY num
)
;

10G XML 함수에서는 따옴표가 ' 로 표시되는 관계로
부득이하게 @ 로 대체해서 다시한번 처리했습니다.

'SQL' 카테고리의 다른 글

function 작성하는법  (0) 2012.05.31
오라클 덤프뜨기 (DMP 파일)  (0) 2010.05.03
TOAD 단축키  (0) 2010.03.15
오라클 함수  (0) 2009.11.30
merge  (0) 2009.11.29

merge

SQL 2009. 11. 29. 23:32
데이터가 있으면 update를 하고 데이터가 없으면 insert를 하는 함수
오라클 전용인듯..?

merge into kt_map as kt
using dual
on (kt.id = '111')                                      // 조건절
when matched then
update set kt.name = '222'                       //update
when not matched then
insert (kt.id,kt.name) values ('111','222')   //insert

'SQL' 카테고리의 다른 글

function 작성하는법  (0) 2012.05.31
오라클 덤프뜨기 (DMP 파일)  (0) 2010.05.03
TOAD 단축키  (0) 2010.03.15
오라클 함수  (0) 2009.11.30
문자열 연결하는 방법  (0) 2009.11.29
parent.document.getElementById('ID').height = document.body.scrollHeight;

자식창 스크립트에 삽입.
1 ··· 15 16 17 18 

글 보관함

카운터

Total : / Today : / Yesterday :
get rsstistory!