如何編寫具有嵌套過濾器的SQL查詢。SQL:基於多個過濾器的多個Where子句
信息:2的搜索過濾器
1過濾器:ID,姓名,日期
第二過濾器:根據第一,對於編號:準確,範圍;對於名稱:確切的,像;爲日期:確切,範圍。
在LINQ代碼的做一樣的東西:
theList = somelistFromDb;
case filter1
case "Id"
if filter2 == "exact"
theList.where(x => x == searchkey);
else if filter 2 == "range"
theList.where(x => x >= searchkey && x<=searchkey2);
case "Name"
if filter2 == "exact"
theList.where(x => x == searchkey);
else if filter2 == "like"
theList.where(x => x.contains("searchkey));
...
如何轉換LINQ以上的僞代碼到SQL?
@MarcGravell - 如果它們是兩個比較中涉及的相同值,我同意你的看法,但似乎涉及3個值('x','searchKey'和'searchKey2') –
@Damien_The_Unbeliever I錯過了,ta –
上述代碼中的「theList」變量是從存儲過程返回的。 SP將「全部返回」,並在C#中完成過濾和排序。任務是將上面的僞代碼合併到SP中,因此所有事情都在數據庫服務器上完成「優化」,並且返回的列表將被過濾和排序。順便說一句,謝謝你們... –