·您的位置: 首页 » 资源教程 » 编程开发 » 数据库 » 利用CASE?述做SQL的??排列

利用CASE?述做SQL的??排列

类别: 数据库教程  评论数:0 总得分:0
SQL Server 在坐取儋料?r是?裼秒S?C的方式, 所以使用者??用 Order 子句?碜鲑Y料排列, 在呃篇文章??中咱叨要?磉M一
步介铰按怎使用 Case ?碜????B的排列

Order By 子句

咱先?砜贷?一般使用 Select 的劫果, 在呃篇文章的例咱??使用 SQL Server 的北锾儋料?飕 ??打檫 Query Analyzer, ?碳br> 行

Use Northwind
Go
Select CompanyName, ContactName, ContactTitle
From Customers

?绦械慕Y果可能是按照儋料??入的?r殓?砼帕鞋 哪是你要照自己的???t?砼努 你叨需要用到 Order By 子句, 譬如嘱前一
??例, 你哪是要照公司名?砼胚兑?按呢做

Select CompanyName, ContactName, ContactTitle
From Customers
Order By CompanyName

Case ?⑹黾br>
Case ?⑹鲞m用?砜刂瞥淌降牧飨颥 所以咱叨要利用 Case ?⑹??碜? T-SQL 的????控制, ?砜贷? Case 的遮法

Case <input expression>
When <when expression> Then <result expression>
[...n]
[Else <result expression>]

光看遮法不?颥 ?F在用一??例???W??一下, 同款地咱??是用北锾儋料?飕 假韵咱??要?⒙??T (Employees) 儋料表中的英文
费呼改做台?呈浆 可以按呢做

select FirstName, TitleOfCourtesy, CourtesyInTC =
Case TitleOfCourtesy
When \'Ms.\' Then \'水姑娘\'
When \'Dr.\' Then \'博士博\'
When \'Mr.\' Then \'先仔\'
When \'Mrs.\' Then \'女士\'
Else \'先生/小姐\'
End
From employees

???B排列

了解了基本遮法後咱??就可以檫始?W??按怎利用 Order By 加上 Case ?⑹??碜????B的儋料排列

Declare @OrderKey TinyInt
Set @OrderKey = 2

Select CompanyName, ContactName, ContactTitle
From Customers
Order By Case
When @OrderKey = 1 Then CompanyName
When @OrderKey = 2 Then ContactName
Else ContactTitle
End

不咿呃尤像??不太??用, 至少在 ASP 中, 所以接下?碓??碜鲆???盍?Τ绦蚣br>
Create Procedure sp_SelectCustomersDynamicOrder
@OrderKey = Null
As
Select CompanyName, ContactName, ContactTitle
From Customers
Order By Case
When @OrderKey = 1 Then CompanyName
When @OrderKey = 2 Then ContactName
Else ContactTitle
End

?F在你就可以在直接呼叫呃?? Stored Procedure

exec sp_SelectCustomersDynamicOrder
exec sp_SelectCustomersDynamicOrder 1
exec sp_SelectCustomersDynamicOrder 2
-= 资 源 教 程 =-
文 章 搜 索
关键词:
类型:
范围:
纯粹空间 softpure.com
Copyright © 2006-2008 暖阳制作 版权所有
QQ: 15242663 (拒绝闲聊)  Email: faisun@sina.com
 纯粹空间 - 韩国酷站|酷站欣赏|教程大全|资源下载|免费博客|美女壁纸|设计素材|技术论坛   Valid XHTML 1.0 Transitional
百度搜索 谷歌搜索 Alexa搜索 | 粤ICP备19116064号-1