首 页 网站运营 网络编程 网页制作 图象媒体 数据库 建站资源 网管专区 下载专区 最新资讯
IT学堂|红色黑客联盟
设为首页
加入收藏
联系站长
您所在的位置:首页>数据库>Mysql>文章内容
数据库查询结果的动态排序(6)
来源: 作者: 发布时间:2007-04-13

 现在,如果我们用任意三个列名字之一作为参数调用存储过程,存储过程都能够正确地返回结果。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表达式返回恰当的数据类型,而且无需进行数据类型转换。但应该注意的是,只有当指定的列不需要进行计算时,索引才能够优化排序操作。



[推荐] [返回顶部] [打印本页] [关闭窗口]
热点文章
·用批处理对MySQL进行数据操作
·PHP中操作MySQL的一些要注意的问题
·实例讲解:.NET如何访问MySQL数据库
·让MySQL与ASP.NET配合更强大
·数据备份中可能出错的情况及解决办法
·SQL Server连接失败错误分析与排除(1)
·SQL Server连接失败错误分析与排除(2)
·扩展微软 SQL Server 的空间功能
·了解MYSQL数据库调度与锁定的问题
·实例讲解MySQL数据库的查询优化技术
相关文章
·当SQL Server数据库崩溃时如何恢复?
·数据库管理员制胜之宝
·数据库查询结果的动态排序(5)
·如何提取除最新十条记录之外的所有记
·数据库查询结果的动态排序(4)
·关于如何在查询结果中添加自动编号
·数据库查询结果的动态排序(3)
·MySQL修改密码方法总结
·数据库查询结果的动态排序(1)
·SQL--JOIN之完全用法
文章检索
Google
相关文章
·当SQL Server数据库崩溃
·数据库管理员制胜之宝
·数据库查询结果的动态排
·如何提取除最新十条记录
·数据库查询结果的动态排
·关于如何在查询结果中添
·数据库查询结果的动态排
·MySQL修改密码方法总结
·数据库查询结果的动态排
·SQL--JOIN之完全用法
·数据库查询结果的动态排
·一个有关DISTINCT的问题
·SQL Server 7.0数据库的
·如何随机选取n条记录或
·正确配置和使用SQL mail