Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- sql
- 자바스크립트
- 배포
- react
- Android
- 시큐리티
- 안드로이드
- 스프링
- 시놀로지
- yml
- spring
- sqlite
- 이클립스
- 앱
- Native
- Java
- EAS
- 로또
- springboot
- Admob
- DB
- 폰트
- thymeleaf
- sts
- YAML
- string
- expo
- mysql
- Navigation
- sdk
Archives
- Today
- Total
Dev JS Blog
[Oracle] 행 데이터 한 열로 합치기 본문
728x90
행 데이터 열로 합치기
여러 행으로 되어져있는 데이터를 한컬럼으로 모을수 없을까..?
EX_TABLE 에는 num 컬럼과 team 컬럼으로 데이터가 있습니다.
num 를 그룹지어서 team을 한 컬럼에 보여주려면 어떻게 해야할까요?
바로 WM_CONCAT 을 이용하면 됩니다.
1 2 3 4 5 | SELECT num, --그룹기준 WM_CONCAT(team) --합쳐질 컬럼 FROM EX_TABLE GROUP BY num | cs |
결과 >
TEAM이 모두 합쳐졌습니다. 기본으로 ,(콤마) 로 구분자로 한컬럼에 합쳐졌습니다.
이방법은 제가 알기론 10g 버전까지 활용하던 방법이고
11g 이상부터는 다른 함수를 활용하시면 되겠습니다.
LISTAGG 입니다.
LISTAGG(컬럼,구분자) WITHIN GROUP(ORDER BY 합쳐진컬럼안 정렬)
1 2 3 4 | SELECT num, --그룹기준 LISTAGG(team, '/') WITHIN GROUP (ORDER BY team desc) AS team FROM EX_TABLE | cs |
결과 >
WITHIN GROUP(ORDER BY team desc) 를 했때문에 TEAM 결과가
A/B/C가 아닌 C/B/A 로 역순으로 합쳐져있습니다.
728x90
'옛날 창고 > SQL' 카테고리의 다른 글
[Oracle] sql developer를 이용한 tablespace 생성 (1) | 2019.01.28 |
---|---|
[Oracle] 오라클 설치 (0) | 2019.01.27 |
[Oracle] ORA - 01861 에러 (0) | 2019.01.05 |
[Oracle] lead(), lag()는 뭐지? (0) | 2018.12.26 |
[SQL] JOIN 에 대해서 (0) | 2018.12.23 |
Comments