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;

行转列

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;     
这篇关于mysql-版本的行列转换的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!