怎么用视图把数据由正常的已行显示改为已列显示?(在线等待)

wangmingwu 2003-10-21 11:08:57
如正常结果显示:
select Name,Value,Date from Table1
Name Value Date
----------------------
name1 value1 date1
name2 value1 date1
name1 value1 date2
name2 value1 date2
name3 value1 date2
name2 value1 date3
name4 value1 date3

改为:
Date name1 name2 name3 name4
-----------------------------------------
date1 value1 value2
date2 value1 value2 value3
date3 value2 value4
...全文
29 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangmingwu 2003-10-21
  • 打赏
  • 举报
回复
谢谢!怎么给分
还有没有其他的做法
rocllllll 2003-10-21
  • 打赏
  • 举报
回复
太正确了,但是SQL的交叉表限制死了(值得时列名)
不能推广,除非定死了,就要那些字段
enhydraboy 2003-10-21
  • 打赏
  • 举报
回复
赫赫,交叉表的做法。
pengdali 2003-10-21
  • 打赏
  • 举报
回复
如果value是数字类型且需要value求和:

declare @sql varchar(8000)
set @sql = 'select [Date]'
select @sql = @sql + ',sum(case [Name] when '''+[Name]+''' then Value else 0 end) ['+[Name]+']'
from (select distinct [Name] from 有一表) as a
select @sql = @sql+' from 有一表 group by [Date]'

exec(@sql)
go
pengdali 2003-10-21
  • 打赏
  • 举报
回复
declare @sql varchar(8000)
set @sql = 'select [Date]'
select @sql = @sql + ',max(case [Name] when '''+[Name]+''' then Value end) ['+[Name]+']'
from (select distinct [Name] from 有一表) as a
select @sql = @sql+' from 有一表 group by [Date]'

exec(@sql)
go

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧