UDF 實作動態排序
SQL Server 2000 支援表值函數,可封裝動態排序邏輯:
錯誤與解決方案
錯誤訊息: Msg 1033: The ORDER BY clause is invalid in views, inline functions, and subqueries, unless TOP is also specified.
原因: 檢視表/內嵌函數/子查詢應回傳無序集合,ORDER BY 需搭配 TOP。
技巧: 使用 SELECT TOP 100 PERCENT * 替代 SELECT *,滿足語法要求並保留完整排序結果。
函數調用方式
SELECT * FROM ufn_GetSortedShippers('ShipperID')
總結
掌握參數化排序多種技術:CASE 運算式、動態 SQL、Richard 多 CASE 法、UDF + TOP 100 PERCENT 技巧,可依應用場景靈活選擇。