仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 735|回复: 8
打印 上一主题 下一主题

[学习教程] MYSQL教程之mssql 数据库表行转列,列转行最终计划...

[复制链接]
再见西城 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:15:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
任何规模的组织都可能受益于外包服务,并在一个标准化和优化的平台上统一其数据库管理任务。基于其本身的特性,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:07 来自手机 | 只看该作者
原理很简单,对要求长时间计算某一时间点的报表生成和防用户操作错误很有帮助。但是比起Oracle10g的闪回技术还是细粒度不够。可惜!
小妖女 该用户已被删除
板凳
发表于 2015-1-25 21:40:39 | 只看该作者
总感觉自己还是不会SQL
分手快乐 该用户已被删除
地板
发表于 2015-2-4 06:07:01 | 只看该作者
不过话说回来了,绝大多数的性能优化准则与对sqlserver存储的结构理解息息相关
若相依 该用户已被删除
5#
发表于 2015-2-9 17:05:41 | 只看该作者
以前的DTS轻盈简单。但是现在的SSIS虽然功能强大了很多,但是总是让人感觉太麻烦。看看论坛中询问SSIS的贴子就知道。做的功能太强大了,往往会有很多用户不会用了
飘灵儿 该用户已被删除
6#
发表于 2015-2-27 12:19:28 | 只看该作者
原来公司用过MYSQL自己也只是建个表写个SQL
莫相离 该用户已被删除
7#
发表于 2015-3-9 03:39:02 | 只看该作者
如果处理少量数据,比如几百条记录的数据,我不知道这两种情况哪个效率更高,如果处理大量数据呢?比如有表中有20万条记录.
爱飞 该用户已被删除
8#
发表于 2015-3-16 20:17:01 | 只看该作者
理解了存储结构,再阅读下性能优化的章节基本上会对sqlserver有个清晰地认识
只想知道 该用户已被删除
9#
发表于 2015-3-23 03:17:23 | 只看该作者
但换公司用MSSQL2K感觉自己好像根本就不了解MSSQL。什么DTS触发器以前根本没用过。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-11 04:52

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表