首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

動態排序查詢結果基礎技巧(一):IF...ELSE 多重查詢與效能優化

     編輯:關於SqlServer

方案一:IF...ELSE 執行預寫查詢

最直觀作法:依參數執行不同預寫 SELECT:

CREATE PROC GetSortedShippers
    @OrdSeq 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;

優缺點分析

優點缺點
程式碼簡單易懂查詢邏輯變更需修改多處
查詢優化器為每個 SELECT 產生獨立最佳計畫參數嗅探問題較少(各計畫獨立)
無動態 SQL 風險擴充欄位需新增 IF 分支

適用場景

  • 排序欄位固定且數量少(≤5)。
  • 各查詢執行計畫差異大,需獨立優化。
  • 團隊偏好靜態 SQL、避免動態執行。

小結

IF...ELSE 方案以維護成本換取計畫穩定與簡單度,適合小規模固定排序需求。下文將介紹更靈活的參數化方案。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved