일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- GUI 또는 CLI전환
- ipvlan
- CentOS7
- docker container backup
- YCSB
- Dell Venue 8 Pro
- 인강배속
- 컨테이너 복원
- 웹영상배속
- ventoy 사용법
- 영상배속
- MySQL
- Oracle
- putty
- CentOS
- 파이썬 스톱워치
- Windows
- cloudready OS
- cubrid
- 컨테이너 백업
- docker container restore
- cmd로msi파일설치
- #Oracle
- Linux
- docker
- 딜라이브플러스h3
- cmd인스톨러설치
- VPN
- OTT셋톱박스
- 시스템예약종료
- Today
- Total
일단은 프로그래머 나부랭이
오라클 listagg와 wm_concat에 대한 정리 본문
1)쿼리를 짜다보면 간혹 가다가, 여러행의 데이터를 1행에 보여줘야 할 경우가 있다.
무슨말이냐면..
이름 | 보유 이메일 |
이거원 | 네이버 |
이거원 | 다음 |
위와 같은 내용을
이름 | 보유 이메일 |
이거원 | 네이버,다음 |
이런식으로 보여줘야 할 때가 있다.
이때는 listagg또는 wm_concat등의 함수를 쓰면 된다.
위의 두함수는 자신이 사용하는 2)오라클 버젼에 맞춰서 사용하면 된다.
10g일 경우 : wm_concat
11g일 경우 : listagg
를 사용하는데, 함수명칭이 다른만큼, 사용방법이 다르다
(만일 서버의 오라클 버전이라도 바뀌는 경우엔... 일일이 찾아서 고쳐줘야 하는 불편함이 있다)
wm_concat의 경우
wm_concat(컬럼명) 이라고 쓰면 되지만
listagg의 경우
listagg(컬럼명, 구분기호) within group (order by 정렬기준컬럼)
이라고 써야만한다...
즉, 오라클 버젼을 함부로 바꾸면 ㅈ......
당연히 한눈에 보기에도 wm_concat이 더 간편하다.
하지만, 활용하기에는 listagg가 더 좋을것 같다.
이유는 사용자가 구분기호를 정할 수 있고, 행을 합칠때 정렬 기준까지 정할 수 있기 때문.
ex : wm_concat은 '네이버,다음'이라고 밖에 표현이 안되지만, listagg는 구분기호를 변경하여 '네이버&다음'이라고 표기할 수도 있다.
___________________________________________________________________________________________
1) 쿼리 : Query라고 쓰며, 질의어 라고도 한다. 3)DBMS에서 원하는 데이터를 찾기위한 일종의 언어(?)
2) 오라클 : Oracle라고 쓰며, 동명의 회사에서 만든 DBMS이다. 세계에서 제일 많이 사용되는 시스템으로 DB구축시 1순위로 거론된다.(비용등의 문제로 다른 DB를 쓰는 경우가 있지만)
3) DBMS : DataBase Management System의 약자로 데이터베이스를 조작 및 관리하는 시스템이다.
자세한건 링크 참고
'DBMS' 카테고리의 다른 글
ORA-12519 (0) | 2018.03.08 |
---|---|
쿼리를 통해 split과 같은 기능을 구현(?)하는 법 (0) | 2017.02.17 |
Procedure와 Function의 차이 (PL/SQL 관련) (0) | 2016.10.27 |
MINUS 명령어 (0) | 2016.08.19 |
SQL*PLUS에서 'afiedt.buf'의 생성이 안된다느니 할 경우 (0) | 2015.08.26 |