sql行数据以列进行显示

Create   table   test   (name   char(10),km   char(10),cj   int)  
go  
insert   test   values('张三','语文',80)  
insert   test   values('张三','数学',86)  
insert   test   values('张三','英语',75)  
insert   test   values('李四','语文',78)  
insert   test   values('李四','数学',85)  
insert   test   values('李四','英语',78)  

select * from test]
--查询结果
查询结果
50411_7d91ecf7059294e.jpg


----行数据以列进行显示
declare   @sql   varchar(8000)  
set   @sql   =   'select   name'  
select   @sql   =   @sql   +   ',sum(case   km   when   '''+km+'''   then   cj   end)   ['+km+']'  
  from   (select   distinct   km   from   test)   as   a  
select   @sql   =   @sql+'   from   test   group   by   name'  
---执行语句
exec(@sql)  
-----显示结果
行数据以列进行显示
50411_71af02be371b7c3.jpg

显然后者更加直观

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16436858/viewspace-548894/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/16436858/viewspace-548894/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQL Server中,可以使用PIVOT和UNPIVOT函数将数据转换为转换为。 1. 将数据转换为(PIVOT函数) PIVOT函数将数据转换为数据。以下是一个示例: 假设有一个名为Sales的表,其中包含以下数据: | Year | Quarter | Sales | |------|---------|-------| | 2019 | Q1 | 100 | | 2019 | Q2 | 200 | | 2019 | Q3 | 300 | | 2019 | Q4 | 400 | | 2020 | Q1 | 500 | | 2020 | Q2 | 600 | | 2020 | Q3 | 700 | | 2020 | Q4 | 800 | 现在,我们想要将每个季度的销售额作为显示。可以使用以下查询: ```sql SELECT Year, [Q1], [Q2], [Q3], [Q4] FROM (SELECT Year, Quarter, Sales FROM Sales) AS SourceTable PIVOT ( SUM(Sales) FOR Quarter IN ([Q1], [Q2], [Q3], [Q4]) ) AS PivotTable; ``` 输出结果如下: | Year | Q1 | Q2 | Q3 | Q4 | |------|----|----|----|----| | 2019 | 100 | 200 | 300 | 400 | | 2020 | 500 | 600 | 700 | 800 | 2. 将转换为(UNPIVOT函数) UNPIVOT函数将数据转换为数据。以下是一个示例: 假设有一个名为Sales的表,其中包含以下数据: | Year | Q1 | Q2 | Q3 | Q4 | |------|----|----|----|----| | 2019 | 100 | 200 | 300 | 400 | | 2020 | 500 | 600 | 700 | 800 | 现在,我们想要将每个季度的销售额作为显示。可以使用以下查询: ```sql SELECT Year, Quarter, Sales FROM (SELECT Year, Q1, Q2, Q3, Q4 FROM Sales) AS SourceTable UNPIVOT ( Sales FOR Quarter IN ([Q1], [Q2], [Q3], [Q4]) ) AS UnpivotTable; ``` 输出结果如下: | Year | Quarter | Sales | |------|---------|-------| | 2019 | Q1 | 100 | | 2019 | Q2 | 200 | | 2019 | Q3 | 300 | | 2019 | Q4 | 400 | | 2020 | Q1 | 500 | | 2020 | Q2 | 600 | | 2020 | Q3 | 700 | | 2020 | Q4 | 800 |

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值