MSSQL网页编程之使用Case⑹鲎SQL的B分列
支持多线程,充分利用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]
光看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数据表的数据行级锁定实际发生在它们的索引上,而不是数据表自身上。显然,数据行级锁定机制只有在有关的数据表有一个合适的索引可供锁定的时候才能发挥效力。 如果处理少量数据,比如几百条记录的数据,我不知道这两种情况哪个效率更高,如果处理大量数据呢?比如有表中有20万条记录. 个人感觉没有case直观。而且默认的第三字段(还可能更多)作为groupby字段很容易造成新手的错误。 数据库物理框架没有变动undo和redo都放在数据库得transaction中,个人感觉是个败笔。如果说我们在设计数据库的时候考虑分多个数据库,可能能在一定程度上避免I/O效率问题。 Mirror可以算是SQLServer的Dataguard了。但是能不能被大伙用起来就不知道了。 只能告诉你,学好数据库语言和原理,多见识几种数据库软件,比一棵树上吊死要好。 如果你是从“学习某一种数据库应用软件,从而获得应聘的资本和工作机会”的角度来问的话。 如果处理少量数据,比如几百条记录的数据,我不知道这两种情况哪个效率更高,如果处理大量数据呢?比如有表中有20万条记录. 如果,某一版本可以提供强大的并发响应,但是没有Oracle的相应版本稳定,或者价格较贵,那么,它就是不适合的。
页:
[1]