仓酷云

标题: MYSQL教程之mssql 数据库表行转列,列转行最终计划... [打印本页]

作者: 再见西城    时间: 2015-1-16 22:15
标题: MYSQL教程之mssql 数据库表行转列,列转行最终计划...
任何规模的组织都可能受益于外包服务,并在一个标准化和优化的平台上统一其数据库管理任务。基于其本身的特性,DBaaS提供了敏捷和高效的数据库服务,它可以支持多变的需求。复制代码代码以下:
--行转列成绩
--创建yh境
CreateTableTEST
(DATESVarchar(6),
EMPNOVarchar(5),
STYPEVarchar(1),
AMOUNTInt)
--拔出
InsertTESTSelect200605,02436,A,5
UnionAllSelect200605,02436,B,3
UnionAllSelect200605,02436,C,3
UnionAllSelect200605,02436,D,2
UnionAllSelect200605,02436,E,9
UnionAllSelect200605,02436,F,7
UnionAllSelect200605,02436,G,6
UnionAllSelect200605,02438,A,7
UnionAllSelect200605,02438,B,8
UnionAllSelect200605,02438,C,0
UnionAllSelect200605,02438,D,3
UnionAllSelect200605,02438,E,4
UnionAllSelect200605,02438,F,5
UnionAllSelect200605,02438,G,1
GO
--y
--假如STYPE流动,能够@N
Select
DATES,
EMPNO,
SUM(CaseSTYPEWhenAThenAMOUNTElse0End)AsA,
SUM(CaseSTYPEWhenBThenAMOUNTElse0End)AsB,
SUM(CaseSTYPEWhenCThenAMOUNTElse0End)AsC,
SUM(CaseSTYPEWhenDThenAMOUNTElse0End)AsD,
SUM(CaseSTYPEWhenEThenAMOUNTElse0End)AsE,
SUM(CaseSTYPEWhenFThenAMOUNTElse0End)AsF,
SUM(CaseSTYPEWhenGThenAMOUNTElse0End)AsG
FromTEST
GroupByDATES,EMPNO
OrderByDATES,EMPNO

--假如STYPE不流动,用BZ句
Declare@SVarchar(1000)
Set@S=
Select@S=@S+,SUM(CaseSTYPEWhen+STYPE+ThenAMOUNTElse0End)As+STYPEFrom(SelectDistinctSTYPEFromTEST)AOrderBySTYPE
Set@S=SelectDATES,EMPNO+@S+FromTESTGroupByDATES,EMPNOOrderByDATES,EMPNO
EXEC(@S)
GO
--假如被转置的是数字范例的话,使用以下语句
DECLARE@SVARCHAR(1000)
SET@S=SELECTDATES,EMPNO
SELECT@S=@S+,[+STYPE+]=SUM(CASEWHENSTYPE=+STYPE+THENAMOUNTELSE0END)
FROM(SelectDistinctSTYPEFromTEST)AOrderBySTYPE
SET@S=@S+FROMTESTGROUPBYDATES,EMPNO
EXEC(@S)

假如是列转行的话间接UnionAll就能够了

比方:

citystylecolor46485052
长沙S6MF010021521221
长沙S6MF010022011221
下面到上面的模样
citystylecolorsizeqty
长沙S6MF01002152461
长沙S6MF01002152482
长沙S6MF01002152502
长沙S6MF01002152521
长沙S6MF01002201461
长沙S6MF01002201482
长沙S6MF01002201502
长沙S6MF01002201521

SelectCity,Style,Color,[46]FromTest
Unionall
SelectCity,Style,Color,[48]FromTest
Unionall
SelectCity,Style,Color,[50]FromTest
Unionall
SelectCity,Style,Color,[52]FromTest

就能够了根据Evans的调查报告,“MySQL的使用在未来将继续呈成长趋势。”
作者: 金色的骷髅    时间: 2015-1-19 06:26
原理很简单,对要求长时间计算某一时间点的报表生成和防用户操作错误很有帮助。但是比起Oracle10g的闪回技术还是细粒度不够。可惜!
作者: 小妖女    时间: 2015-1-25 21:40
总感觉自己还是不会SQL
作者: 分手快乐    时间: 2015-2-4 06:07
不过话说回来了,绝大多数的性能优化准则与对sqlserver存储的结构理解息息相关
作者: 若相依    时间: 2015-2-9 17:05
以前的DTS轻盈简单。但是现在的SSIS虽然功能强大了很多,但是总是让人感觉太麻烦。看看论坛中询问SSIS的贴子就知道。做的功能太强大了,往往会有很多用户不会用了
作者: 飘灵儿    时间: 2015-2-27 12:19
原来公司用过MYSQL自己也只是建个表写个SQL
作者: 莫相离    时间: 2015-3-9 03:39
如果处理少量数据,比如几百条记录的数据,我不知道这两种情况哪个效率更高,如果处理大量数据呢?比如有表中有20万条记录.
作者: 爱飞    时间: 2015-3-16 20:17
理解了存储结构,再阅读下性能优化的章节基本上会对sqlserver有个清晰地认识
作者: 只想知道    时间: 2015-3-23 03:17
但换公司用MSSQL2K感觉自己好像根本就不了解MSSQL。什么DTS触发器以前根本没用过。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2