仓酷云

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

[学习教程] MSSQL网页编程之使用Case⑹鲎SQL的B分列

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

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

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

x
支持多线程,充分利用CPU资源SQLServer在x取Y料r是裼秒SC的体例,以是利用者Order子句碜鲑Y料分列,在@篇文章中咱叨要磉M一
步介B按怎利用Case碜B的分列

OrderBy子句

咱先砜贷一样平常利用Select的Y果,在@篇文章的例咱褂SQLServer的北LY料,打_QueryAnalyzer,


UseNorthwind
Go
SelectCompanyName,ContactName,ContactTitle
FromCustomers

绦械慕Y果多是依照Y料进的rg砼帕,哪是你要照本人的t砼,你叨必要用到OrderBy子句,比如v前一
例,你哪是要照公司名砼胚兑茨刈

SelectCompanyName,ContactName,ContactTitle
FromCustomers
OrderByCompanyName

Case⑹

Case⑹鲞m用砜刂瞥淌降牧飨,以是咱叨要使用Case⑹碜T-SQL的把持,砜贷Case的Z法

Case<inputexpression>
When<whenexpression>Then<resultexpression>
[...n]
[Else<resultexpression>]

光看Z法不,F在用一例W一下,同款地咱是用北LY料,假O咱要⒙T(Employees)Y料表中的英文
Q呼改做台呈,能够按呢做

selectFirstName,TitleOfCourtesy,CourtesyInTC=
CaseTitleOfCourtesy
WhenMs.Then水女人
WhenDr.Then博士博
WhenMr.Then先仔
WhenMrs.Then密斯
Else师长教师/蜜斯
End
Fromemployees

B分列

懂得了基础Z法後咱就能够_始W按怎使用OrderBy加上Case⑹碜B的Y料分列

Declare@OrderKeyTinyInt
Set@OrderKey=2

SelectCompanyName,ContactName,ContactTitle
FromCustomers
OrderByCase
When@OrderKey=1ThenCompanyName
When@OrderKey=2ThenContactName
ElseContactTitle
End

不^@H像不太用,最少在ASP中,以是接下碓碜鲆AΤ绦

CreateProceduresp_SelectCustomersDynamicOrder
@OrderKey=Null
As
SelectCompanyName,ContactName,ContactTitle
FromCustomers
OrderByCase
When@OrderKey=1ThenCompanyName
When@OrderKey=2ThenContactName
ElseContactTitle
End

F在你就能够在间接呼唤@StoredProcedure

execsp_SelectCustomersDynamicOrder
execsp_SelectCustomersDynamicOrder1
execsp_SelectCustomersDynamicOrder2

按呢是否是和睦多了

但愿@篇文章δ阌助!
出于效率方面的考虑,InnoDB数据表的数据行级锁定实际发生在它们的索引上,而不是数据表自身上。显然,数据行级锁定机制只有在有关的数据表有一个合适的索引可供锁定的时候才能发挥效力。
只想知道 该用户已被删除
沙发
发表于 2015-1-19 11:37:29 | 只看该作者
如果处理少量数据,比如几百条记录的数据,我不知道这两种情况哪个效率更高,如果处理大量数据呢?比如有表中有20万条记录.
不帅 该用户已被删除
板凳
发表于 2015-1-26 15:59:19 | 只看该作者
个人感觉没有case直观。而且默认的第三字段(还可能更多)作为groupby字段很容易造成新手的错误。
第二个灵魂 该用户已被删除
地板
发表于 2015-2-4 20:07:28 | 只看该作者
数据库物理框架没有变动undo和redo都放在数据库得transaction中,个人感觉是个败笔。如果说我们在设计数据库的时候考虑分多个数据库,可能能在一定程度上避免I/O效率问题。
愤怒的大鸟 该用户已被删除
5#
发表于 2015-2-10 06:30:17 | 只看该作者
Mirror可以算是SQLServer的Dataguard了。但是能不能被大伙用起来就不知道了。
若天明 该用户已被删除
6#
发表于 2015-3-1 01:06:07 | 只看该作者
只能告诉你,学好数据库语言和原理,多见识几种数据库软件,比一棵树上吊死要好。
飘飘悠悠 该用户已被删除
7#
发表于 2015-3-10 12:08:00 | 只看该作者
如果你是从“学习某一种数据库应用软件,从而获得应聘的资本和工作机会”的角度来问的话。
小魔女 该用户已被删除
8#
发表于 2015-3-17 07:07:35 | 只看该作者
如果处理少量数据,比如几百条记录的数据,我不知道这两种情况哪个效率更高,如果处理大量数据呢?比如有表中有20万条记录.
冷月葬花魂 该用户已被删除
9#
发表于 2015-3-24 00:57:02 | 只看该作者
如果,某一版本可以提供强大的并发响应,但是没有Oracle的相应版本稳定,或者价格较贵,那么,它就是不适合的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-4-27 14:21

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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