基本上我必須建立一個SQL數據庫的項目列表,但用戶可以選擇過濾7個過濾器的任何組合,也可以選擇一個列來排序,也可以按方向排序。排序,排序,過濾的複雜混合SQL Server
正如你可以想象的,這結束於大量不同的組合編碼和數據集是非常大的,所以我想避免在應用程序中這樣做。
在我的存儲過程到目前爲止,我曾嘗試:
建立一個查詢字符串,雖然這是非常簡單和容易執行,它離開開放的SQL注入的應用程序,所以我寧願避免這種情況。
我也嘗試使用一組IF ELSE
語句來運行適當的參數化SQL,但是這很快就會變成一棵巨大的樹,並且將是一個噩夢來維護。
我不是第一個需要像這樣的解決方案的人,並且必須有比上述更好的方法嗎?另外作爲一個側面的問題,除了做大量的IF之外,還有一種很好的方式可以按照參數化的方式進行排序和排序?
如果能減少過濾器'和(FLD1 = @過濾器1或@過濾器1爲空)'你應該閱讀http://www.sommarskog.se/dyn-search-2008.html –