2010-10-25 71 views
0

我在.net中有以下代碼。在sql 2008中嵌套動態情況下的語句

foreach (string key in EntityNumbers.Keys) 
{ 

        if (EntityNumbers[key] != null) 
        { 
         e = new WebServices.Entity(); 
         e.HierarchyLevel = key; 
         e.Number = EntityNumbers[key]; 
         entities.Add(e); 
        } 
       } 

這必須按以下格式轉換爲SQL。

declare @HierarchyLevelValue int, @HierarchyLevel nvarchar; 

SELECT * from table where 
CASE 
    WHEN @HierarchyLevel='COMPANY' THEN COMPANYNUMBER 
    WHEN @HierarchyLevel='BRANCH' THEN BRANCHNUMBER 
    WHEN @HierarchyLevel='BUSINESS' THEN BUSINESSNUMBER 
END [email protected] 

上面的代碼將單一實體工作,但如何實現多像

SELECT * from table where COMPANYNUMBER=100 AND BRANCHNUMBER= 1 
AND BUSINESSNUMBER= 1 

我能形成最終的查詢語句的字符串,並通過執行的ExecuteSQL。 有什麼方法可以避免形成字符串?

在此先感謝。

+0

我不確定我是否完全遵循。你能否包括一些樣本數據和你期望的結果? – 2010-10-25 13:55:08

回答