我有一個存儲過程從表中返回前50行,像這樣:如何通過參數爲存儲過程指定列?
select top 50
Puzzle,
min(DateSolved) as CreationDate,
avg(SecondsToComplete) as AverageTime,
count(*) as TimesSolved
from CustomSolves
group by Puzzle
但我想在存儲過程接受兩個參數,這樣我可以通過自定義列順序(創建日期,平均時間或時間),並且只選擇比特定日期更新的記錄。像這樣的僞SQL:
procedure SelectCustomPuzzles
@CutoffDate datetime,
@SortColumn column
as
select top 50
Puzzle,
min(DateSolved) as CreationDate,
avg(SecondsToComplete) as AverageTime,
count(*) as TimesSolved
from CustomSolves
where CreationDate > @CutOffDate
group by Puzzle
order by @SortColumn
我怎麼能去做這樣的事情呢?
如何處理默認情況,以防排序列與任何情況不符? – 2011-12-17 18:28:08
@Peter Olson:更新了答案 – gbn 2011-12-17 18:35:40