仓酷云

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

[学习教程] MSSQL网站制作之--竖表变行表

[复制链接]
小女巫 该用户已被删除
跳转到指定楼层
#
发表于 2015-1-16 22:35:50 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
目前的方案是用mysqlbinlog工具,增加一个Flashback参数,输出结果为一个新的binlog文件――姑且叫做flashbacklog,这个flashbacklog顺序执行,可制定某张表和执行到哪个pos,来实现数据库的闪回。
--竖表变行表
--创立表
createtableA(
工号varchar(20),
日期smalldatetime,
工夫varchar(20)
)
--拔出测试数据
insertintoAselect01,2004-10-01,07:50
unionselect01,2004-10-01,11:35
unionselect01,2004-10-01,14:20
unionselect01,2004-10-02,08:01
unionselect01,2004-10-02,14:30
unionselect02,2004-10-01,07:55
unionselect02,2004-10-02,07:58
unionselect03,2004-10-01,07:56
--创立存储历程
createprocp_t
as
declare@idvarchar(20),@datesmalldatetime,@timevarchar(50)
select*into#afromAorderby工号,日期,工夫
update#aset工夫=casewhen(工号=@id)and(日期=@date)then@timeelse工夫end,
@time=casewhen(工号=@id)and(日期=@date)then@time+,+工夫else工夫end,
@id=工号,@date=日期
select工号,日期,max(工夫)as工夫from#agroupby工号,日期orderby工号
--实行
execp_t
--测试了局
工号日期工夫
---------------------------------------------
012004-10-0100:00:0007:50,11:35,14:20
012004-10-0200:00:0008:01,14:30
022004-10-0100:00:0007:55
022004-10-0200:00:0007:58
032004-10-0100:00:0007:56
(所影响的行数为5行)



select[Empid]from[Employee]
得出了局:
张三
李四
王五
...
...

想要将它兼并成这类了局:
张三,李四,王五...,...

declare@svarchar(8000)
set@s=
select@s=@s+,+[Empid]from[Employee]
printstuff(@s,1,1,)




declare@sqlvarchar(2000)
set@sql=
select@sql=@sql+[Empid]+,from[Employee]
set@sql=left(@sql,len(@sql)-1)
print@sql


Archive非常适合存储大量的独立的,作为历史记录的数据。因为它们不经常被读取。Archive拥有高效的插入速度,但其对查询的支持相对较差
小魔女 该用户已被删除
10#
发表于 2015-3-22 21:08:58 | 只看该作者
所以你总能得到相应的升级版本,来满足你的需求。
透明 该用户已被删除
9#
发表于 2015-3-22 21:08:22 | 只看该作者
呵呵,这就是偶想说的
简单生活 该用户已被删除
8#
发表于 2015-3-22 21:08:20 | 只看该作者
对于数据库来说,查询是数据库的灵魂,那么SQL查询效率究竟效率如何呢?下文将带对SQL查询的相关问题进行讨论,供您参考。
爱飞 该用户已被删除
7#
发表于 2015-3-16 07:09:32 | 只看该作者
微软对CLR作了大篇幅的宣传,这是因为数据库产品终于融入.net体系中。最开始我们也是狂喜,感觉对象数据库的一些概念可以实现了。
再现理想 该用户已被删除
6#
发表于 2015-3-8 17:06:11 | 只看该作者
分区表是个亮点!从分区表也能看出微软要做大作强SQLServer的信心。资料很多,这里不详细说。但是重点了解的是:现在的SQLServer2005的表,都是默认为分区表的。因为它要支持滑动窗口的这个特性。这种特性对历史数据和实时数据的处理是很有帮助的。
精灵巫婆 该用户已被删除
5#
发表于 2015-2-26 19:38:02 | 只看该作者
无法深入到数据库系统层面去了解和探究
乐观 该用户已被删除
地板
发表于 2015-2-9 02:57:13 | 只看该作者
至于淘汰的问题,只能说在你的项目周期之内,微软应该都不会倒闭。
若相依 该用户已被删除
板凳
发表于 2015-2-3 13:32:25 | 只看该作者
可能有的朋友会抱怨集成的orderby,其实如果使用ranking函数,Orderby是少不了的。如果担心Orderby会影响效率,可以为orderby的字段建立聚集索引,查询计划会忽略orderby操作(因为本来就是排序的嘛)。
第二个灵魂 该用户已被删除
沙发
发表于 2015-1-25 18:50:47 | 只看该作者
having子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having条件显示特定的组,也可以使用多个分组标准进行分组。
柔情似水 该用户已被删除
楼主
发表于 2015-1-19 18:02:05 | 只看该作者
始终遗憾SQLServer的登陆无法分配CPU/内存占用等指标数。如果你的SQLServer给别人分配了一个只可以读几个表的权限,而这个家伙疯狂的死循环进行连接查询,会给你的系统带来很大的负担。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-22 23:33

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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