|
| |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
在公共新闻组中,一个常常出现的问题是“怎样才能根据传递给存储过程的参数返回一个排序的输出?”。在一些高水平专家的帮助之下,我整理出了这个问题的几种解决方案。 一、用IF...ELSE执行预先编写好的查询 对于大多数人来说,首先想到的做法也许是:通过IF...ELSE语句,执行几个预先编写好的查询中的一个。例如,假设要从Northwind数据库查询得到一个货主(Shipper)的排序列表,发出调用的代码以存储过程参数的形式指定一个列,存储过程根据这个列排序输出结果。Listing 1显示了这种存储过程的一个可能的实现(GetSortedShippers存储过程)。 【Listing 1: 用IF...ELSE执行多个预先编写好的查询中的一个】 CREATE PROC GetSortedShippers @OrdSeq AS int AS IF @OrdSeq = 1 SELECT * FROM Shippers ORDER BY ShipperID ELSE IF @OrdSeq = 2 SELECT * FROM Shippers ORDER BY CompanyName ELSE IF @OrdSeq = 3 SELECT * FROM Shippers ORDER BY Phone 这种方式的长处是代码很简朴、很轻易理解,SQL Server的查询优化器能够为每一个SELECT查询创建一个查询优化计划,确保代码具有最优的性能。这种方式最主要的缺点是,假如查询的要求发生了改变,你必须修改多个独立的SELECT查询――在这里是三个。 返回类别: 教程 上一教程: 如何从MYSQL数据库表中检索数据 下一教程: 利用数据库复制技术 实现数据同步更新 您可以阅读与"数据库查询结果的动态排序(1)"相关的教程: · 数据库查询结果的动态排序(7) · 数据库查询结果的动态排序(4) · 数据库查询结果的动态排序(5) · 数据库查询结果的动态排序(2) · 数据库查询结果的动态排序(6) |
| 快精灵印艺坊 版权所有 |
首页 |
||