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

 

猜你喜欢

转载自www.cnblogs.com/hellowworld/p/10045237.html