快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

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

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
返回类别: 教程
上一教程: 用MYSQL创建数据库和数据库表
下一教程: 跟我学SQL:(八)数值数据类型

您可以阅读与"利用CASE?述做SQL的??排列"相关的教程:
· SQL中使用CASE的情?
· 利用MSSQL sp自制未公开的加密函数
· 如何利用SQL SERVER发邮件
· 利用MSSQL sp自制未公开的加密函数
· 探讨SQL Server中Case 的不同用法
    微笑服务 优质保证 索取样品