에스제이

반응형

안녕하세요, 오늘은 MYSQL에서 리스트로 출력된 결과를 하나의 컬럼으로 추출하는 방법에 대해서 알아보도록 하겠습니다. MYSQL에서 리스트로 출력된 결과물을 하나의 컬럼으로 추출하고 싶을 땐 GROUP_CONCAT()이라는 함수를 사용하면 되는데요, GROUP_CONCAT을 어떻게 사용해야 하는지 알아봅시다~

 

테이블명 : NATIONAL_TABLE
GUBUN NATIONAL_NM
 national  대한민국
 national  미국
 national  중국
 national  일본
 national  호주
 national  대한민국

 

위와 같이 NATIONAL_TABLE에 데이터가 있다고 가정해보자.

구분값은 national 이면서 NATIONAL_NM 컬럼의 결과값을 한 줄로 표현해야 하는 경우 GROUP_CONCAT() 함수를 사용하면 됩니다.

 

질의

SELECT
      GUBUN
    , GROUP_CONCAT(NATIONAL_NM) AS NATIONAL_NM
FROM NATIONAL_TABLE;

결과

GUBUN NATIONAL_NM
national 대한민국, 미국, 중국, 일본, 호주, 대한민국

 

GROUP_CONCAT의 구분자는 기본적으로 문자열 사이에 ' , '가 붙습니다.

그렇다면 구분자를 ' , ' 이외에 다른 문자를 사용하고 싶다면 어떻게 해야할까요??

 

질의

SELECT
      GUBUN
    , GROUP_CONCAT(NATIONAL_NM SEPARATOR '^') AS NATIONAL_NM
FROM NATIONAL_TABLE;

결과

GUBUN NATIONAL_NM
national 대한민국^미국^중국^일본^호주^대한민국

 

자, 이번에는 결과값에서 중복된 데이터를 제거하여 추출하고 싶다면 어떻게 해야 할까요?

 

질의

SELECT
      GUBUN
    , GROUP_CONCAT(DISTINCT NATIONAL_NM) AS NATIONAL_NM
FROM NATIONAL_TABLE;

결과

GUBUN NATIONAL_NM
national 대한민국^미국^중국^일본^호주

 

자, 이번엔 마지막으로 그룹화된 데이터를 정렬하려면 어떻게 해야 할까요??

 

 

반응형

 

질의

SELECT
      GUBUN
    , GROUP_CONCAT(NATIONAL_NM ORDER BY NATIONAL_NM DESC) AS NATIONAL_NM
FROM NATIONAL_TABLE;

결과

GROUP NATIONAL_NM
national 호주^일본^중국^미국^대한민국^대한민국

 

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band