SQL行列转置

Posted hellowworld

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL行列转置相关的知识,希望对你有一定的参考价值。

技术分享图片

--函数
alter function zh()
returns table
as
return(
   select 科目,max(张三) as 张三,max(李四)as 李四
    from(
         select 语文as 科目,张三,李四
         from stu2
         pivot(max(语文)for 姓名 in (科目,张三,李四))as a 
         union all
         select 数学as 科目,张三,李四
         from stu2
         pivot(max(数学)for 姓名 in (科目,张三,李四))as a )as n
   group by 科目
go
select * from zh()

--存储过程
alter procedure zh1
as

    select 科目,max(张三) as 张三,max(李四)as 李四
    from(
         select 语文as 科目,张三,李四
         from stu2
         pivot(max(语文)for 姓名 in (科目,张三,李四))as a 
         union all
         select 数学as 科目,张三,李四
         from stu2
         pivot(max(数学)for 姓名 in (科目,张三,李四))as a )as n
    group by 科目

go
exec zh1

 技术分享图片

 

以上是关于SQL行列转置的主要内容,如果未能解决你的问题,请参考以下文章

Excel或SQL Sserver中数据行列转置/转换?

SQL行列转置

简化实现动态行列转置的SQL

一道SQL面试题——表行列数据转换(表转置)

SQL行列转换

SQL行列转换