或者将第一种方法用动态SQL语句写的话,也可以达到结果集的列数是动态的效果.
解决方案 »
- -before update 触发器 = 50 ?---
- sql列相加合并
- 当b表中id和a表中id相同时,把a表中符合这个条件的name字段都更新成b表中的name字段值。这句话怎么写?
- ACCESS的数据库转化为SQL SERVER的数据库日期函数处理??
- 删除架构时,目标不存在,这啥情况
- SQL2000 bug,大家一起来讨论
- 知道sa的密码,如何通过master表得到数据库,而后再得到每个库的用户表
- Sql server confiiguration 问题 0x80041003
- 这个问题可以用扩展的存储过程来解决吗?
- 即使我是大菜鸟/但请告诉我!
- 放分,限2天结束。。。。。。。
- 问一个很菜的问题,谢谢
Create Table TEST
(月 Int,
日 Int,
气温 Numeric(10,1))
--插入数据
Insert TEST Values(1, 1, 23.5)
Insert TEST Values(1, 2, 25.9)
Insert TEST Values(1, 3, 24.8)
Insert TEST Values(2, 1, 25.0)
Insert TEST Values(2, 2, 24.7)
Insert TEST Values(2, 3, 23.1)
Insert TEST Values(3, 1, 24.0)
Insert TEST Values(3, 2, 26.9)
Insert TEST Values(3, 3, 20.6)
GO
--测试
Declare @S Nvarchar(4000)
Set @S=N'Select 日 '
Select @S=@S+','+N'SUM(Case 月 When '+ Rtrim(月) +N' Then 气温 Else 0 End) As ['+Rtrim(月)+N'月]'
from (Select Distinct 月 from TEST) A Order By 月
Select @S=@S+N' From TEST Group By 日 Order By 日'
EXEC(@S)
--删除测试环境
Drop Table TEST
--结果
/*
日 1月 2月 3月
1 23.5 25.0 24.0
2 25.9 24.7 26.9
3 24.8 23.1 20.6
*/
里面的N是什么意思?