我已經它使用動態排序的存儲過程,2個參數確定排序 - 柱:@SortIndex
和排序方向:@SortDirection
SQL Server的動態排序
相關的代碼:
...
ROW_NUMBER() OVER
(
ORDER BY
-- string order by
CASE @SortDirection
WHEN 'ASC' THEN
CASE @SortIndex
WHEN 1 THEN SKU
WHEN 2 THEN BrandName
WHEN 3 THEN ItemName
END
END ASC,
CASE @SortDirection
WHEN 'DESC' THEN
CASE @SortIndex
WHEN 1 THEN SKU
WHEN 2 THEN BrandName
WHEN 3 THEN ItemName
END
END DESC,
這種種在單列上,但是我想在@SortIndex
爲2時對BrandName ASC, ItemName ASC
進行排序。
我建議動態SQL(建立在字符串中查詢和執行它)。複雜的排序可以很快導致許多CASE結構覆蓋它。 –
您在When 2子句中嘗試了Brandname + ItemName嗎? –
如果你走這條路,請小心。你有看起來像參數的字符串。你需要注意sql注入並使用參數化的動態sql。 –