用简洁的sql语句写交叉表

用简洁的sql语句写交叉表

ID:34784157

大小:60.68 KB

页数:3页

时间:2019-03-10

用简洁的sql语句写交叉表_第1页
用简洁的sql语句写交叉表_第2页
用简洁的sql语句写交叉表_第3页
资源描述:

《用简洁的sql语句写交叉表》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、用简洁的SQL语句写交叉表SQL交叉表实例很简单的一个东西,见网上好多朋友问“怎么实现交叉表?”,以下是我写的一个例子,数据库基于SQLSERVER2000。--======================================================--交叉表实例--======================================================建表:在查询分析器里运行:CREATETABLE[Test]([id][int]IDENTITY(1,1)NOTNULL,[name][nvarchar](50)COLLATEChinese_PR

2、C_CI_ASNULL,[subject][nvarchar](50)COLLATEChinese_PRC_CI_ASNULL,[Source][numeric](18,0)NULL)ON[PRIMARY]GOINSERTINTO[test]([name],[subject],[Source])values(N'张三',N'语文',60)INSERTINTO[test]([name],[subject],[Source])values(N'李四',N'数学',70)INSERTINTO[test]([name],[subject],[Source])values(N'王五',N'英语'

3、,80)INSERTINTO[test]([name],[subject],[Source])values(N'王五',N'数学',75)INSERTINTO[test]([name],[subject],[Source])values(N'王五',N'语文',57)INSERTINTO[test]([name],[subject],[Source])values(N'李四',N'语文',80)INSERTINTO[test]([name],[subject],[Source])values(N'张三',N'英语',100)Go交叉表语句的实现:--用于:交叉表的列数是确定的selec

4、tname,sum(casesubjectwhen'数学'thensourceelse0end)as'数学',sum(casesubjectwhen'英语'thensourceelse0end)as'英语',sum(casesubjectwhen'语文'thensourceelse0end)as'语文'fromtestgroupbyname--用于:交叉表的列数是不确定的declare@sqlvarchar(8000)set@sql='selectname,'select@sql=@sql+'sum(casesubjectwhen'''+subject+'''thensourceels

5、e0end)as'''+subject+''','from(selectdistinctsubjectfromtest)asaselect@sql=left(@sql,len(@sql)-1)+'fromtestgroupbyname'exec(@sql)go

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。