仓酷云

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

[学习教程] MSSQL网页编程之切磋SQL Server中Case 的分歧用法

[复制链接]
变相怪杰 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:40:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
有了rowbase的binlog后,我们来分析一下怎么实现闪回。平时的DML无非三种操作,增删改,先说三种操作的日志格式。serverCASE多是SQL中被误用最多的关头字之一。固然你大概之前用过这个关头字来创立字段,可是它还具有更多用法。比方,你能够在WHERE子句中利用CASE。起首让我们看一下CASE的语法。在一样平常的SELECT中,其语法以下:SELECT<myColumnSpec>=CASEWHEN<A>THEN<somethingA>WHEN<B>THEN<somethingB>ELSE<somethingE>END在下面的代码中必要器具体的参数取代尖括号中的内容。上面是一个复杂的例子:USEpubsGOSELECTTitle,PriceRange=CASEWHENpriceISNULLTHENUnpricedWHENprice<10THENBargainWHENpriceBETWEEN10and20THENAverageELSEGifttoimpressrelativesENDFROMtitlesORDERBYpriceGO这是CASE的典范用法,可是利用CASE实在能够做更多的事变。例如说上面的GROUPBY子句中的CASE:SELECTNumberofTitles,Count(*)FROMtitlesGROUPBYCASEWHENpriceISNULLTHENUnpricedWHENprice<10THENBargainWHENpriceBETWEEN10and20THENAverageELSEGifttoimpressrelativesENDGO你乃至还能够组合这些选项,增加一个ORDERBY子句,以下所示:USEpubsGOSELECTCASEWHENpriceISNULLTHENUnpricedWHENprice<10THENBargainWHENpriceBETWEEN10and20THENAverageELSEGifttoimpressrelativesENDASRange,TitleFROMtitlesGROUPBYCASEWHENpriceISNULLTHENUnpricedWHENprice<10THENBargainWHENpriceBETWEEN10and20THENAverageELSEGifttoimpressrelativesEND,TitleORDERBYCASEWHENpriceISNULLTHENUnpricedWHENprice<10THENBargainWHENpriceBETWEEN10and20THENAverageELSEGifttoimpressrelativesEND,TitleGO注重,为了在GROUPBY块中利用CASE,查询语句必要在GROUPBY块中反复SELECT块中的CASE块。除选择自界说字段以外,在良多情形下CASE都十分有效。再深切一步,你还能够失掉你之前以为不成能失掉的分组排序了局集。转自:http://www.g22.net/Article/Show.asp?ID=688我们只需要把binlog文件反向执行,每个操作都执行逆操作即可。当然也不是所有的event都反转。Table_mapevent必须还是在Rows_log_event每个操作之前。
柔情似水 该用户已被删除
沙发
发表于 2015-1-19 21:10:27 | 只看该作者
对于微软系列的东西除了一遍遍尝试还真没有太好的办法
老尸 该用户已被删除
板凳
发表于 2015-1-27 05:16:21 | 只看该作者
总感觉自己还是不会SQL
莫相离 该用户已被删除
地板
发表于 2015-2-4 23:30:55 | 只看该作者
这就引发了对varchar和char效率讨论的老问题。到底如何分配varchar的数据,是否会出现大规模的碎片?
飘灵儿 该用户已被删除
5#
发表于 2015-2-10 22:57:13 | 只看该作者
备份方面可能还是一个老大难的问题。不能单独备份几个表总是感觉不爽。灵活备份的问题不知道什么时候才能解决。
活着的死人 该用户已被删除
6#
发表于 2015-3-1 17:05:51 | 只看该作者
其实可以做一下类比,Oracle等数据库产品老早就支持了java编程,而且提供了java池参数作为用户配置接口。但是现在有哪些系统大批使用了java存储过程?!连Oracle自己的应用都不用为什么?!
分手快乐 该用户已被删除
7#
发表于 2015-3-10 21:22:27 | 只看该作者
是要和操作系统进行Socket通讯的场景。否则建议慎重!
变相怪杰 该用户已被删除
8#
 楼主| 发表于 2015-3-24 07:23:28 | 只看该作者
where子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-5-4 08:01

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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