我想在存儲過程中使用動態順序,所以我可以傳遞我想要返回到存儲過程的數據作爲參數的順序。這爲VARCHAR領域工作正常但是如果我嘗試如下SQL Server的動態順序通過
DECLARE @ORDERBY INT
SET @ORDERBY = 1
SELECT TOP 10 * FROM TBL_LMS_USERS_RECORDs_LAST_ATTEMPT
ORDER BY
CASE
WHEN @OrderBy = 1 THEN s10_record_dow
--WHEN @OrderBy = 2 THEN pk_big_record_id
else s10_record_dow
END
如果我取消了第二當case語句它的錯誤與
int或時間字段是錯誤,我有代碼進行排序「」將數據類型varchar轉換爲bigint時出錯。
如果我不使用case語句,我可以按這個字段排序。
任何想法?
感謝,似乎工作,出於興趣爲什麼它的工作好,我是如何用VARCHAR,但爲了使用INT或其他數據類型我有它有這樣的方式? – Gavin 2009-04-15 13:30:56