2020年8月7日 星期五

T-SQL 動態排序欄位注意事項

實務上確實有可能讓使用者決定資料的排序,在資料量不小的情境下,不太可能將資料全部撈出在用程式過濾,

搭配原本實作分頁的邏輯(亦可參考黑哥文章),將動態排序需求加入其中。

 

這邊使用person table 模擬資料,設計如下


資料內容如下


其中,模擬能夠達到動態使用 Name 或 CreateOn 欄位來排序,tsql 語法如下


若 @sorted 參數為1 使用「Name」欄位排序,若為0則使用 「CreateOn」排序,但當執行時,會出現以下錯誤



經過測試,由於「Name」與 「CreateOn」欄位兩者的資料型別不同,需要將 datetime 的轉換為字串,調整語法如下,

即可正常運作




快速筆記加強印象


 

沒有留言:

張貼留言