国产探花免费观看_亚洲丰满少妇自慰呻吟_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查詢——在這里是三個。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 长乐市| 永济市| 抚宁县| 农安县| 翼城县| 盐山县| 延吉市| 昂仁县| 无极县| 大竹县| 石棉县| 陆川县| 固镇县| 磴口县| 云安县| 封丘县| 河间市| 卫辉市| 巴中市| 金秀| 湘阴县| 焉耆| 小金县| 防城港市| 济宁市| 阿克| 庆安县| 安阳县| 安丘市| 武乡县| 鹿泉市| 伊宁县| 逊克县| 四子王旗| 阳城县| 嘉荫县| 深州市| 思茅市| 宁河县| 苍山县| 新巴尔虎右旗|