SqlServer数据库怎么实现行转列的sql语句

SqlServer数据库怎么实现行转列的sql语句,第1张

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>)

)

姓名 数学 语文 姓名 张飞 赵云 庞统

张飞 6061数学 60 8099

赵云 8085 变成语文 61 8580

庞统 9980

而且第一行为列名,不是表中的数据,这样的话

也就是第一个表下面三行的数据,变成第二个表下面两行的数据

这样还是可以的

可用union all来实现。

如test表中数据如下:

现要将id为3的一条按列显示,可用如下语句:

select to_char(id) str from test where id=3

union all

select name from test where id=3

查询结果:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10073189.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存