CREATE TABLE Code_Column (code varchar(10));
INSERT INTO Code_Column VALUES
('0001'),('0002'),('0003'),('0004'),('0005'),('0006'),('0007'),('0008'),('0009'),('0010'),
('0011'),('0012'),('0013'),('0014'),('0015'),('0016'),('0017'),('0018'),('0019'),('0020'),
('0021'),('0022'),('0023'),('0024'),('0025'),('0026'),('0027'),('0028'),('0029'),('0030'),
('0031'),('0032'),('0033'),('0034'),('0035'),('0036'),('0037'),('0038'),('0039'),('0040');
SELECT * FROM Code_Column;
SELECT
MAX(CASE seq MOD 5 WHEN 0 THEN code ELSE NULL END) code1,
MAX(CASE seq MOD 5 WHEN 1 THEN code ELSE NULL END) code2,
MAX(CASE seq MOD 5 WHEN 2 THEN code ELSE NULL END) code3,
MAX(CASE seq MOD 5 WHEN 3 THEN code ELSE NULL END) code4,
MAX(CASE seq MOD 5 WHEN 4 THEN code ELSE NULL END) code5
FROM
(SELECT (@seq := @seq + 1) as seq, code FROM Code_Column, (SELECT @seq := -1) x ) y
GROUP BY seq DIV 5;
select case when tmp.seq = 1 then code else '' end as code1,
case when tmp.seq = 2 then code else '' end as code2,
case when tmp.seq = 3 then code else '' end as code3,
case when tmp.seq = 4 then code else '' end as code4,
case when tmp.seq = 5 then code else '' end as code5,
case when @y < 5 then @z else @z := @z + 1 end as seq,
case when @y >= 5 then @y := 1 else @y := @y +1 end as seq2
from (
select code,
case when @x <5 then @x:= @x+ 1
else @x :=1
end as seq
from Code_Column i, (select @x := 0) x1
) tmp, (select @z:=1, @y := 0) y1
select max(code1) as code1, max(code2) as code2, max(code3) as code3
, max(code4) as code4, max(code5) as code5
from
(select case when tmp.seq = 1 then code else '' end as code1,
case when tmp.seq = 2 then code else '' end as code2,
case when tmp.seq = 3 then code else '' end as code3,
case when tmp.seq = 4 then code else '' end as code4,
case when tmp.seq = 5 then code else '' end as code5,
case when @y < 5 then @z else @z := @z + 1 end as seq,
case when @y >= 5 then @y := 1 else @y := @y +1 end as seq2
from (select code, case when @x <5 then @x:= @x+ 1 else @x :=1 end as seq
from Code_Column i, (select @x := 0) x1) tmp, (select @z:=1, @y := 0) y1
) tmp1
group by seq;
'연구개발 > MYSQL' 카테고리의 다른 글
mysql> show status (0) | 2014.12.03 |
---|---|
MySQL 테이블 데이터 암호화 (0) | 2014.11.27 |
컬럼이 5줄인 데이터를 한줄로 보여지게 하는 방법 (0) | 2014.11.27 |
io_capacity와 checkpoint age <MySQL 5.6> (0) | 2014.11.27 |
MySQL 5.6 Parallel Replication (slave_parallel_workers) (0) | 2014.11.25 |