2013-12-18 52 views
-1

我在嘗試按列索引(數值)使用Order By時出現問題。如何從變量設置ASC/DESC的順序

這個工程:

@OrderBy = 1 

    SELECT Col1,Col2 FROM Table ORDER BY @OrderBy ASC 

這不起作用:

@OrderBy = 1 
    @Direction = 'ASC' 

    SELECT Col1,Col2 FROM Table ORDER BY @OrderBy @Direction 

如何通過數字列數訂貨時按方向使用順序變量?

+1

是什麼呢?你不能將'ASC'或'DESC'存儲在一個變量中,而不是一個字符串。 –

+0

我不認爲這是可能的例外情況**或**動態quesry – Dhaval

回答

3
ORDER BY 
    case when @Direction = 'ASC' THEN field END ASC , 
    case when @Direction = 'DESC' THEN field END DESC 
0

試試這個:

ORDER BY @OrderBy CASE @Direction WHEN 'ASC' THEN @OrderBy ELSE [email protected] END ASC