mysql-版本的行列转换


mysql版本的行列转换

先看一个题目

mysql-版本的行列转换

方法:

mysql-版本的行列转换

行转列

mysql-版本的行列转换

mysql-版本的行列转换


--我们可以使用union all函数 将其凭借起来
select (
    case id when 1 then 'first' 
            when 2 then 'second' 
            when 5 then 'fifth' end)grade
    ,sum(
        case subject when 'chinese' then score else 0 end) chinese
    ,sum(
        case subject when 'math' then score else 0 end) math
    ,sum(
        case subject when 'politics' then score else 0 end) politics 
    from test group by id;

行转列

mysql-版本的行列转换

mysql-版本的行列转换

select * from (
	select 
     	(case grade when 'first' then 1 
        		  when 'second' then 2 
        		  when 'fifth' then 5 end) id,
        'chinese' subject,
    	chinese as score from test2
union all 
    select 
    	(case grade when 'first' then 1
          		    when 'second' then 2 
                     when 'fifth' then 5 end) id,
    	'math' subject,
    	math as score from test2 
union all 
    select 
    	(case grade when 'first' then 1 
                    when 'second' then 2 
                    when 'fifth' then 5 end) id,
    	'politics' subject,
    	politics as score from test2 order by id) a 
where a.score<>0;     

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/278834.html

(0)
上一篇 2022年8月4日
下一篇 2022年8月4日

相关推荐

发表回复

登录后才能评论