• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

利用Case⑹鲎SQL的B排列_sqlserver

sqlserver 搞代码 3年前 (2018-06-16) 92次浏览 已收录 0个评论

SQL Server 在x取Y料r是裼秒SC的方式, 所以使用者 Order 子句碜鲑Y料排列, [email protected]
步介B按怎使用 Case 碜B的排列

Order By 子句

咱先砜贷一般使用 Select 的Y果, [email protected] SQL Server 的北LY料, 打_ Query Analyzer,

http://www.gaodaima.com/35763.html利用Case⑹鲎SQL的B排列_sqlserver

Use Northwind
Go
Select CompanyName, ContactName, ContactTitle
From Customers

绦械慕Y果可能是按照Y料入的rg砼帕, 哪是你要照自己的t砼, 你叨需要用到 Order By 子句, 譬如v前一
例, 你哪是要照公司名砼胚兑茨刈

Select CompanyName, ContactName, ContactTitle
From Customers
Order By CompanyName

Case ⑹

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

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

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

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

B排列

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

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

[email protected], 至少在 ASP 中, 所以接下碓碜鲆AΤ绦

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

按呢是不是友善多了

[email protected]!

欢迎大家阅读《利用Case⑹鲎SQL的B排列_sqlserver,跪求各位点评,若觉得好的话请收藏本文,by 搞代码


喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址