利用Case敘述做SQL的動態排列

SQL Server 在讀取資料時是採用隨機的方式, 所以使用者會用 Order 子句來做資料排列, 在這篇文章當中咱叨要來進一
步介紹按怎使用 Case 來做動態的排列

Order By 子句

咱先來看麥一般使用 Select 的結果, 在這篇文章的例咱會使用 SQL Server 的北風資料庫, 請打開 Query Analyzer, 執

Use Northwind
Go
Select CompanyName, ContactName, ContactTitle
From Customers

執行的結果可能是按照資料輸入的時間來排列, 哪是你要照自己的規則來排, 你叨需要用到 Order By 子句, 譬如講前一
個例, 你哪是要照公司名來排叨要按呢做

Select CompanyName, ContactName, ContactTitle
From Customers
Order By CompanyName

Case 敘述

Case 敘述適用來控制程式的流向, 所以咱叨要利用 Case 敘述來做 T-SQL 的邏輯控制, 來看麥 Case 的語法

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

光看語法不夠, 現在用一個例來學練一下, 同款地咱還是用北風資料庫, 假設咱們要將職員 (Employees) 資料表中的英文
稱呼改做台灣式, 可以按呢做

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

動態排列

了解了基本語法後咱們就可以開始學習按怎利用 Order By 加上 Case 敘述來做動態的資料排列

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 中, 所以接下來咱來做一個預儲程序

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

現在你就可以在直接呼叫這個 Stored Procedure

exec sp_SelectCustomersDynamicOrder
exec sp_SelectCustomersDynamicOrder 1
exec sp_SelectCustomersDynamicOrder 2

按呢是不是友善多了

希望這篇文章對你有幫助!

时间: 2024-08-30 08:38:12

利用Case敘述做SQL的動態排列的相关文章

利用Case叙述做SQL的动能排列

SQL Server 在讀取資料時是採用隨機的方式, 所以使用者會用 Order 子句來做資料排列, 在這篇文章當中咱叨要來進一步介紹按怎使用 Case 來做動態的排列 Order By 子句 咱先來看麥一般使用 Select 的結果, 在這篇文章的例咱會使用 SQL Server 的北風資料庫, 請打開 Query Analyzer, 執行 Use Northwind Go Select CompanyName, ContactName, ContactTitle From Customers

利用socket长连接做信息报警提示

问题描述 利用socket长连接做信息报警提示 现在在做一个项目,需要用服务器推送技术做一个报警提示,就是只要有没有处理的信息显示,就自动报警

野心:教你如何利用群发软件来做SEO外链

做网站的人都知道,做SEO最忌讳的就是群发做外链,因为很多人都视群发为SEO的作弊方法,因此很多人对群发外链退而避之.今天我也来谈下个人对群发外链的看法.我觉得,群发做外链是不会影响SEO的,也许你会认为你那是瞎扯淡,但是请看我的分析.为什么群发外链也是SEO的一个重要环节?今天就以从优化一个新网站的角度来说分析吧. 做SEO的人都知道,新站初期是不怎么需要做外链的,新站的前20天左右只要做好内部建设就行了,也就是不断地充实网站的文章,做好网站的内部优化,包括网站的内部锚文本等等.因此,新站的头

利用QQ漂流瓶做外链考虑清楚再执行 请勿盲目跟风

近来网上流传"巧用QQ漂流瓶做外链"的方法,这种方法对于做外链来说确实是一种很新鲜的外链方式,我本人就此而尝试过多次,经仔细分析结果效果不大.或许是我没有利用好QQ漂流瓶,也或许是QQ漂流瓶做外链推广的价值本身就不大.不过针对QQ漂流瓶做外链,我确实存在了一些真实的感受,因此,我想和大家交流交流我的心得,经过分析再三,我个人倒是认为利用QQ漂流瓶做外链需要考虑清楚后再执行,请勿盲目跟风. QQ漂流瓶做外链的优点我简单的抽取两个重要点概括入下: 1.QQ漂流瓶已经分好类,比如传递瓶.同城

谈谈如何利用论坛个性签名做外链

在网站优化中,外链建设一直都是一项不可忽视的重点工程.然而即使大家都知道外链的重要性有多高,但是大部分只知其一不知其二,因为很多都知道外链是提升排名权重的重点因素,但是却不知道怎么做才能把正面效果发挥出来,更多的则是通过论坛做一大堆外链也看不到排名的起色.而且在现在很多站长都说论坛做的外链作用已经是微乎其微了,做了也白做.其实笔者不这么认为,首先对于论坛外链是否还有用,咱们不应该只站在一个角度去考虑,别人说没作用自己也跟着忽悠其他人没作用,到底有没有用呢?自己也不知道,只是跟风心理.闲话少说,对

oracle-java做sql语句解析遇到问题,大神麻烦戳进来

问题描述 java做sql语句解析遇到问题,大神麻烦戳进来 目前为止,把Oracle中的指定数据库的指定存储过程包download到本地创建sql文件,考虑如何把指定的表中的指定字段的加工逻辑提取出来,考虑要分增删改查不同的语句进行解析,求大神指点迷津,有代码就更好了,谢谢!!! 解决方案 http://www.cnblogs.com/zcftech/archive/2013/06/10/3131286.html 解决方案二: select name,text from user_source

利用百度相关词做站迅速提升网站流量

大家好,我是梦里寻你,今天跟大家分享的内容是<利用百度相关词做站迅速提升网站流量>,这个标题看了,想必大家也不是很清楚吧.其实大家一定发现了,在百度搜索的时候,打出一个字就会出现相关的词组.这是百度的智能识别.可以方便网民更快速的寻找自己要得到的信息.也正因为如此,有不少网络高手,就针对百度这一点,刷百度的相关词搜索了. 但不正规的操作方法,总是不能让新人朋友放心而大胆去操作,得罪了百度那可是没有什么好果子吃的.我对百度也是又爱又恨.不过目前也是由于还无法很好的掌控百度的情绪,所以先远离下她,

利用YAHOO公开API做天气预报Web服务

本系列文章导航 创建一个示例和WebMethod特性解析 WebService特性和数组类型解析 类和结构体解析 利用YAHOO公开API做天气预报Web服务 Webservice 的设计和模式 Remoting和Webservice的区别 学了一段时间的Web服务,今天做了一个Web服务,利用YAHOO的公开天气API做自己的Web服务,主要是想练练手.现在把过程和心得分享给大家. 求教:这个Web服务还有个不完善的地方,Web服务的CityNameToCityNum方法,这个最重要,他是把省

想做SQL语句注入实验,可以在JSP页面直接嵌入sql语句查询吗?

问题描述 想做SQL语句注入实验,可以在JSP页面直接嵌入sql语句查询吗? 我是名大三的学生,想请假各位大神,如果想做SQL语句注入实验,可以在JSP页面直接嵌入sql语句查询吗?还是使用ssh框架反应机制?还是其它的,有大神可以指教一下小弟吗?该课程是网络安全,主要就是想做sql语句注入检测网页漏洞的? 解决方案 直接建个环境做测试啊,网上这方面的课程很多. 解决方案二: 只要是页面有访问数据库操作的 都可以拿来做 SQL语句注入 解决方案三: 最简单的就是在页面上允许输入查询条件,在jsp