网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > SQL技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.小议主子表INT自增主键插入记录的.
.如何使Microsoft SQL Server的日.
.如何清除SQL日志.
.由浅入深讲解update statistics的.
.教你轻松掌握数据库系统的一些专.
."SQL Server不存在或访问被拒绝".
.如何修改Syabse服务器端的默认字.
.SQL Server 数据库连接字符串的声.
.两个数据分页的存储过程.
.解决SQL速度慢的方法.
.SQL Server中Insert与Select的组.
.SQL Server数据库多种方式查找重.
.SQL Server 2005数据库中表的递归.
.sql2000下 分页存储过程.
.选择是否恢复整个SQL Server的方.
.生成MSSQL Data备份的存储过程.
.使用SQL语句快速获取SQL Server数.
.net在sql server中的图片存取技术.
.Sql Server下数据库链接的使用方.
.解析SQL Server 的存储过程.

数据库查询结果的动态排序(6)

发表日期:2001-11-14


  现在,如果我们用任意三个列名字之一作为参数调用存储过程,存储过程都能够正确地返回结果。Richard Romley提出了一种巧妙的处理方法,如Listing 6所示。它不再要求我们搞清楚可能涉及的列数据类型。这种方法把ORDER BY子句分成三个独立的CASE表达式,每一个表达式处理一个不同的列,避免了由于CASE只返回一种特定数据类型的能力而导致的问题。



【Listing 6:用列名字作为参数,Romley提出的方法】


ALTER PROC GetSortedShippers

@ColName AS sysname

AS


SELECT *

FROM Shippers

ORDER BY

CASE @ColName WHEN 'ShipperID'

THEN ShipperID ELSE NULL END,

CASE @ColName WHEN 'CompanyName'

THEN CompanyName ELSE NULL END,

CASE @ColName WHEN 'Phone'

THEN Phone ELSE NULL END





  按照这种方法编写代码,SQL Server能够为每一个CASE表达式返回恰当的数据类型,而且无需进行数据类型转换。但应该注意的是,只有当指定的列不需要进行计算时,索引才能够优化排序操作。

上一篇:数据库查询结果的动态排序(5) 人气:13590
下一篇:数据库查询结果的动态排序(7) 人气:13513
浏览全部数据库查询结果的动态排序的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐