백앤드 개발 노트
[Oracle] Oracle에서 listagg를 사용해보자
bydawn25
2022. 2. 28. 22:23
year | month | date |
2022 | 1 | 2 |
2022 | 1 | 15 |
2022 | 2 | 10 |
년도, 월, 일이 각각 세개의 column으로 나뉘어져 있는 테이블을 찾았다. 👀
보통 timestamp.. date... 있는 타입을 쓰지 않나? 생각했는데 나는 건의할 힘이 없는 힘없는 실무자.
원하는 결과 |
2022-1-2 |
2022-1-15 |
2022-2-10 |
시키는 대로 세개의 column에서 각각의 값을 뽑아내서 '-'(막대) 인자로 붙여내야 했다. 이전 포스팅에서 대충 사용햇던 listagg function을 사용했다.
select listagg(concat(year,concat(month,day)),'-'); |
listagg(적용할 값, 중간인자) function을 위와 같이 사용하면 각각 column의 값을 합쳐준다. 나는 3개의 column을 합쳐야 했으므로 concat을 두번 사용했다. 요렇고롬 위에 sql을 사용하면 원하는 인자로 이어서 select할 수 있다.
이 sql문을 사용하면 column의 title이 listagg...이렇게만 나오니 깔끔한 테이블을 원하면 as를 사용하면된다.