MariaDB SQL

가로 데이터를 세로 데이터로 변환해보자

ssamhago 2023. 5. 24. 13:16
728x90
320x100

가로 데이터를 세로 데이터로 변환해보자

 

 

아래 TEST 테이블의 테이터를
HORIZONTAL(횡/가로) 에서 VERTICAL(종/세로) 로
변환해 보려고 한다.

 

 

BEFORE : TEST (HORIZONTAL), 가로 데이터

가로 데이터

 

AFTER : TEST (VERTICAL), 세로 데이터

세로 데이터

 

KOR, ENG, CHN 컬럼을 세로로 만들면 되므로
UNION ALL 을 통하여 세로로된 기준 테이블을 만든다.

 

SELECT 'KOR' AS CLASS
UNION ALL SELECT 'ENG' AS CLASS
UNION ALL SELECT 'CHN' AS CLASS

기준 테이블

 

이를 가로 데이터 테이블과 조인하고, CASE WHEN 구분을 활용하여 쿼리를 완성한다.

 

 

SELECT
    X.NAME,
    Y.CLASS,
    CASE
        WHEN Y.CLASS = 'KOR' THEN X.KOR
        WHEN Y.CLASS = 'ENG' THEN X.ENG
        WHEN Y.CLASS = 'CHN' THEN X.CHN
    END AS SCORE
FROM TEST X,
    (
        SELECT 'KOR' AS CLASS
        UNION ALL SELECT 'ENG' AS CLASS
        UNION ALL SELECT 'CHN' AS CLASS
    ) Y
ORDER BY NAME, CLASS DESC;

 

최종 결과

 

 

728x90
반응형

'MariaDB SQL' 카테고리의 다른 글

MariaDB Limit  (0) 2023.05.30
MariaDB in  (0) 2023.05.25
MariaDB Like  (0) 2023.05.23
MariaDB Between  (0) 2023.05.22
MariaDB Distinct  (0) 2023.05.18