문서의 이전 판입니다!
| 물리명 | 논리명 | 타입 |
|---|---|---|
| 년 | year | 문자형 |
| 1월 일수 | jan_day_cnt | 숫자형 |
| 2월 일수 | feb_day_cnt | 숫자형 |
| 3월 일수 | mar_day_cnt | 숫자형 |
| 4월 일수 | apr_day_cnt | 숫자형 |
| 5월 일수 | may_day_cnt | 숫자형 |
| 6월 일수 | jun_day_cnt | 숫자형 |
| 7월 일수 | jul_day_cnt | 숫자형 |
| 8월 일수 | aug_day_cnt | 숫자형 |
| 9월 일수 | sep_day_cnt | 숫자형 |
| 10월 일수 | oct_day_cnt | 숫자형 |
| 11월 일수 | nov_day_cnt | 숫자형 |
| 12월 일수 | dec_day_cnt | 숫자형 |
CREATE TABLE ex_unpivot ( year VARCHAR(100) NOT NULL, jan_day_cnt INT NOT NULL, feb_day_cnt INT NOT NULL, mar_day_cnt INT NOT NULL, apr_day_cnt INT NOT NULL, may_day_cnt INT NOT NULL, jun_day_cnt INT NOT NULL, jul_day_cnt INT NOT NULL, aug_day_cnt INT NOT NULL, sep_day_cnt INT NOT NULL, oct_day_cnt INT NOT NULL, nov_day_cnt INT NOT NULL, dec_day_cnt INT NOT NULL );
INSERT INTO ex_unpivot ( year , jan_day_cnt , feb_day_cnt , mar_day_cnt , apr_day_cnt , may_day_cnt , jun_day_cnt , jul_day_cnt , aug_day_cnt , sep_day_cnt , oct_day_cnt , nov_day_cnt , dec_day_cnt ) VALUES ( '2025' , 31 , 28 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31 );
-- MySQL 4.0 이상/MariaDB 5.1 이상 SELECT year , 'jan' AS month , jan_day_cnt AS day_cnt FROM ex_unpivot UNION ALL SELECT year , 'feb' , feb_day_cnt FROM ex_unpivot UNION ALL SELECT year , 'mar' , mar_day_cnt FROM ex_unpivot UNION ALL SELECT year , 'apr' , apr_day_cnt FROM ex_unpivot UNION ALL SELECT year , 'may' , may_day_cnt FROM ex_unpivot UNION ALL SELECT year , 'jun' , jun_day_cnt FROM ex_unpivot UNION ALL SELECT year , 'jul' , jul_day_cnt FROM ex_unpivot UNION ALL SELECT year , 'aug' , aug_day_cnt FROM ex_unpivot UNION ALL SELECT year , 'sep' , sep_day_cnt FROM ex_unpivot UNION ALL SELECT year , 'oct' , oct_day_cnt FROM ex_unpivot UNION ALL SELECT year , 'nov' , nov_day_cnt FROM ex_unpivot UNION ALL SELECT year , 'dec' , dec_day_cnt FROM ex_unpivot ;
-- MSSQL 2000 이상 SELECT year , 'jan' AS month , jan_day_cnt AS day_cnt FROM ex_unpivot UNION ALL SELECT year , 'feb' , feb_day_cnt FROM ex_unpivot UNION ALL SELECT year , 'mar' , mar_day_cnt FROM ex_unpivot UNION ALL SELECT year , 'apr' , apr_day_cnt FROM ex_unpivot UNION ALL SELECT year , 'may' , may_day_cnt FROM ex_unpivot UNION ALL SELECT year , 'jun' , jun_day_cnt FROM ex_unpivot UNION ALL SELECT year , 'jul' , jul_day_cnt FROM ex_unpivot UNION ALL SELECT year , 'aug' , aug_day_cnt FROM ex_unpivot UNION ALL SELECT year , 'sep' , sep_day_cnt FROM ex_unpivot UNION ALL SELECT year , 'oct' , oct_day_cnt FROM ex_unpivot UNION ALL SELECT year , 'nov' , nov_day_cnt FROM ex_unpivot UNION ALL SELECT year , 'dec' , dec_day_cnt FROM ex_unpivot ; -- MSSQL 2005 이상 SELECT year , REPLACE(month, '_day_cnt', '') AS month , day_cnt FROM ( SELECT year , jan_day_cnt , feb_day_cnt , mar_day_cnt , apr_day_cnt , may_day_cnt , jun_day_cnt , jul_day_cnt , aug_day_cnt , sep_day_cnt , oct_day_cnt , nov_day_cnt , dec_day_cnt FROM ex_unpivot ) src UNPIVOT ( day_cnt FOR month IN ( jan_day_cnt , feb_day_cnt , mar_day_cnt , apr_day_cnt , may_day_cnt , jun_day_cnt , jul_day_cnt , aug_day_cnt , sep_day_cnt , oct_day_cnt , nov_day_cnt , dec_day_cnt ) ) unpvt ;
-- Oracle 9i 이상/Tibero 4 이상 SELECT year , 'jan' AS month , jan_day_cnt AS day_cnt FROM ex_unpivot UNION ALL SELECT year , 'feb' , feb_day_cnt FROM ex_unpivot UNION ALL SELECT year , 'mar' , mar_day_cnt FROM ex_unpivot UNION ALL SELECT year , 'apr' , apr_day_cnt FROM ex_unpivot UNION ALL SELECT year , 'may' , may_day_cnt FROM ex_unpivot UNION ALL SELECT year , 'jun' , jun_day_cnt FROM ex_unpivot UNION ALL SELECT year , 'jul' , jul_day_cnt FROM ex_unpivot UNION ALL SELECT year , 'aug' , aug_day_cnt FROM ex_unpivot UNION ALL SELECT year , 'sep' , sep_day_cnt FROM ex_unpivot UNION ALL SELECT year , 'oct' , oct_day_cnt FROM ex_unpivot UNION ALL SELECT year , 'nov' , nov_day_cnt FROM ex_unpivot UNION ALL SELECT year , 'dec' , dec_day_cnt FROM ex_unpivot ; -- Oracle 11g 이상//Tibero 6 이상 SELECT year , month , day_cnt FROM ex_unpivot UNPIVOT ( day_cnt FOR month IN ( jan_day_cnt AS 'jan' , feb_day_cnt AS 'feb' , mar_day_cnt AS 'mar' , apr_day_cnt AS 'apr' , may_day_cnt AS 'may' , jun_day_cnt AS 'jun' , jul_day_cnt AS 'jul' , aug_day_cnt AS 'aug' , sep_day_cnt AS 'sep' , oct_day_cnt AS 'oct' , nov_day_cnt AS 'nov' , dec_day_cnt AS 'dec' ) ) ;
-- PostgreSQL 7.1 이상 SELECT year , 'jan' AS month , jan_day_cnt AS day_cnt FROM ex_unpivot UNION ALL SELECT year , 'feb' , feb_day_cnt FROM ex_unpivot UNION ALL SELECT year , 'mar' , mar_day_cnt FROM ex_unpivot UNION ALL SELECT year , 'apr' , apr_day_cnt FROM ex_unpivot UNION ALL SELECT year , 'may' , may_day_cnt FROM ex_unpivot UNION ALL SELECT year , 'jun' , jun_day_cnt FROM ex_unpivot UNION ALL SELECT year , 'jul' , jul_day_cnt FROM ex_unpivot UNION ALL SELECT year , 'aug' , aug_day_cnt FROM ex_unpivot UNION ALL SELECT year , 'sep' , sep_day_cnt FROM ex_unpivot UNION ALL SELECT year , 'oct' , oct_day_cnt FROM ex_unpivot UNION ALL SELECT year , 'nov' , nov_day_cnt FROM ex_unpivot UNION ALL SELECT year , 'dec' , dec_day_cnt FROM ex_unpivot ;