从品牌网站建设到网络营销策划,从策略到执行的一站式服务
1,首先创建数据表
创新互联公司专注于龙湖企业网站建设,自适应网站建设,商城建设。龙湖网站建设公司,为龙湖等地区提供建站服务。全流程定制网站建设,专业设计,全程项目跟踪,创新互联公司专业和态度为您提供的服务
2,接着插入演示数据
3,需要把学生的每门成绩集中到一行
4,编写PIVOT函数实现
5,运行以后实现行转列
6,最后还可以用case when来实现
select * from
(
select id as Name , Subject = 'id' , Result = id from tb1
union all
select id as Name , Subject = 'yytc' , Result = yytcfrom tb1
) t
order by name , case Subject when 'id' then 1 when 'yytc' then 2 end
没有数据库,没法给你测试,你用这个试试,看好不好使
如果不好使,可以访问这个地址:
里边有行转列,列转行,应该有你想要的,你看看
PIVOT 用于将列值旋转为列名(即行转列),在 SQL Server 2000可以用聚合函数配合CASE语句实现
PIVOT 的一般语法是:PIVOT(聚合函数(列) FOR 列 in (…) )AS P
注意:PIVOT、UNPIVOT是SQL Server 2005 的语法,使用需修改数据库兼容级别(在数据库属性-选项-兼容级别改为 90 )
SQL2008 中可以直接使用
完整语法:
table_source
PIVOT(
聚合函数(value_column)
FOR pivot_column
IN(column_list)
)
View Code
UNPIVOT 用于将列明转为列值(即列转行),在SQL Server 2000可以用UNION来实现
完整语法:
table_source
UNPIVOT(
value_column
FOR pivot_column
IN(column_list)
)
sqlserver自带得有一个stuff函数,可以结合group by 和distinct使用,可以实现行变列
row_number() over(partition by id order by y) 这是个分析函数,意思是以id分组,y排序,给每一行一个从1开始的行号,一般去重的时候用的比较多
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图