国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

數據庫查詢結果的動態排序(1)

2024-07-21 02:30:58
字體:
來源:轉載
供稿:網友
  在公共新聞組中,一個經常出現的問題是“怎樣才能根據傳遞給存儲過程的參數返回一個排序的輸出?”。在一些高水平專家的幫助之下,我整理出了這個問題的幾種解決方案。


一、用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查詢——在這里是三個。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 修文县| 兴国县| 昭平县| 克什克腾旗| 沾益县| 靖边县| 应城市| 罗源县| 田东县| 巴东县| 海林市| 安徽省| 安泽县| 阳高县| 当雄县| 社会| 大田县| 修水县| 星座| 绍兴县| 高雄县| 永城市| 邹平县| 封开县| 合川市| 平阳县| 会泽县| 自贡市| 潼关县| 忻州市| 武邑县| 视频| 昂仁县| 左贡县| 武安市| 阿勒泰市| 仪陇县| 忻州市| 灵璧县| 盐边县| 长子县|