sql强大的行转列功能(内置函数pivot及注意事项)
PIVOT用于将列值旋转为列名(即行转列),在SQL Server2000可以用聚合函数配合CASE语句实现
PIVOT的一般语法是:PIVOT(聚合函数(列) FOR 列 in (…) )AS P
完整语法:
table_source
P
语法: PIVOT用于将列值旋转为列名(即行转列),在SQL Server2000可以用聚合函数配合CASE语句实现 PIVOT的一般语法是:PIVOT(聚合函数(列) FOR 列 in (…) )AS P 完整语法: table_source PIVOT( 聚合函数(value_column) FOR pivot_column IN() ) UNPIVOT用于将列明转为列值(即列转行),在SQL Server 2000可以用UNION来实现 完整语法: table_source UNPIVOT( value_column FOR pivot_column IN() ) 注意:PIVOT、UNPIVOT是SQL Server 2005的语法,使用需修改数据库兼容级别在数据库属性->选项->兼容级别改为 90
方法一: 现在的问题是:我想根据姓名统计这个人的三门成绩,即:姓名 语文 数学 物理 首先看看使用case when end结构的时候:
方法二:使用pivot函数
上面查询前提是: PIVOT、UNPIVOT是SQL Server 2005的语法,使用需修改数据库兼容级别在数据库属性->选项->兼容级别改为 90 如果兼容级别不改为 90Mssq数学函数,查询结果如下: (编辑:好传媒网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |