특정 컬럼의 레코드들을 스트링으로 변환하는 함수가 없나요? 0 7 2,038

by 끌루니 [Oracle 기초] [2013.03.28 10:55:56]


MS-SQL 에서 어떤 함수를 쓰면 

예를 들어 

사번     이름  
------     ---------
1111   김말동
2222   김말뚱
3333  검멀똥

이런레코드에서 
SELECT 함수(사번,' **") FROM 직원 이렇게 조회를 하면 
1111**2222**3332 이렇게 문자열로 출력하는 함수가 있던데  

오라클에서는 없나요?

by 채용근 [2013.03.28 11:18:29]

sys_connect_by_path / wm_concat / listagg / xmlagg 등.. 버전별로 맞게 사용하시면 될듯

by 아발란체 [2013.03.28 11:22:52]

SELECT REPLACE(WM_CONCAT(사번||CHR(10)), CHR(10)||',', '**') FROM TABLE_NAME


 


by 마농 [2013.03.28 11:23:09]

by 끌루니 [2013.03.28 13:12:51]
모두들 감사드립니다.
이쪽 환경이 오라클 9i입니다.
그래서 결국 
SUBSTR(XMLAgg(XMLElement(x, ',', 컬럼명    )).Extract('//text()'), 2)

이렇게 하면 1, 2, 3 잘 나옵니다.
그런데 추가적으로 [1][2][3] 이렇게 나오게 할수는 없나요?


by 아린 [2013.03.28 13:25:59]
WITH t(사번, 이름) AS(
SELECT '1111', '김말동' FROM dual UNION ALL
SELECT '2222', '김말뚱' FROM dual UNION ALL
SELECT '3333', '검멀똥' FROM dual
)
SELECT REPLACE(SUBSTR(XMLAgg(XMLElement
       (x, ',',
'['||사번||']')).Extract('//text()'), 2), ',') a1
  FROM t

by 마농 [2013.03.28 13:40:36]

XMLAgg(XMLElement(x, '[', 컬럼명, ']')).Extract('//text()').getStringVal()


by 끌루니 [2013.03.28 13:42:05]
모두들 매우 감사드립니다.
MS - SQL 만 근 10년을 해오다가 
갑자기 오라클을 쓸려니 모르는거 투성이네요.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입