以欄位編號作為排序參數
替代欄位名稱,使用數字代表排序依據欄位。核心邏輯同樣使用 CASE 運算式根據編號決定排序欄位。
數值欄位排序字串化技巧
針對 ShipperID 數值欄位,透過 SIGN 判斷正負、ABS 取絕對值、REPLICATE 左補零、RIGHT 取固定寬度,確保字串排序等同數值排序。
替代方案:Richard 方法
將 ORDER BY 拆分為三個獨立 CASE 運算式,各處理一個欄位,避免單一 CASE 僅能回傳單一資料類型的限制,且無需資料類型轉換。
呼叫範例
EXEC GetSortedShippers 1 -- 依 ShipperID 排序