이번에 포스팅 할 내용은 세로로 출력된 쿼리 결과를 하나의 컬럼값에 가로로 구분자를 주는 예를 들어볼까 합니다.
위 화면은 어느 사이트의 강좌별 진행일에 대한 내용을 캡처를 한것입니다.
보시면 요일별 구분자가 정해져 있는것을 확인하실 수 있습니다.
월
화
수
목
금
토
위처럼 쿼리 결과를 구분자를 이용하여
월,화,수,목,금,토
형식으로 지원을 해주는 것이
MySQL에서는 group_concat()이라는 함수입니다.
group_concat을 이용하면 for문을 사용해서 위처럼 가로로 출력할 필요(?)가 없어지겠죠? ㅎㅎ
그럼 group_concat에 대하여 알아보도록 하겠습니다.
1 | group_concat(가로로 출력할 컬럼명 SEPARATOR '구분자' ) |
위처럼 정해주면 되시겠습니다.
그렇다면 한번 기존에 존재하는 테이블 데이터중 아무거나 컬럼하나를 지정하여 쿼리결과를 가로로 변환해 보도록 하겠습니다.
위처럼 BOARD_NEW라는 테이블의 title 컬럼의 결과목록을 가로로 출력 해보도록 하겠습니다.
※ GROUP_CONCAT 함수의 SEPARATOR '구분자' 부분을 정의를 안하시면 DEFAULT 콤마(,)로 구분이 되어서
출력이 되어집니다. SEPARATOR 지정여부로 결과를 출력해보도록 하겠습니다.
1 | SELECT GROUP_CONCAT(title) FROM board_new |
1 | SELECT GROUP_CONCAT(title SEPARATOR '|' ) FROM board_new |
GROUP_CONCAT함수를 사용해서 위와같이 세로 결과를 하나의 컬럼에 가로로 구분자를 주어서 출력을 해보았습니다 ^^
by 개발로짜
오라클 시퀀스 생성법과 테이블에 등록시 시퀀스 자동증가등을 알아보자 (0) | 2014.10.15 |
---|---|
MySQL과 MSSQL의 시퀀스생성 및 초기화 하는방법에 대해서 알아보도록 하자 (0) | 2014.10.14 |
쿼리의 조건문 사용시 oracle에는 decode가있고 mysql에는 if가 있다 (0) | 2014.10.09 |
ORACLE/MYSQL/MSSQL 관계없이 CASE WHEN THEN ELSE END 사용하기 (0) | 2014.10.08 |
DBMS별 기존테이블 SELECT해서 새 테이블에 INSERT하여 데이터 일괄처리하기(oracle,mssql,mysql) (4) | 2014.10.08 |