2017-04-05 140 views
-2

1)在SQL Server中,我有存儲過程並且它已連接多個表。 (2)在這種情況下,UserMaster,RoleMaster和UserType表存在 3)Role Master將具有以下角色RoleX,RoleY和RoleZ 4)在用戶類型主數據中,我們只有類型1和類型2的用戶類型值僅適用於RoleZ每在用戶表中要求) 5)現在我有用戶的n個,並且它們只用於RoleZ它們可以與用戶類型SQL存儲過程,應用Where子句

問題中的任一個相關聯的上述角色中的任何一個和關聯的: 現在在GUI中,我將得到具有角色和用戶類型的用戶過濾器,並且他們將爲過濾器發送多個角色,如果他們爲RoleZ應用過濾器,那麼只有他們會給出usertype過濾器,我如何編寫查詢來獲取該場景的記錄爲

請在此幫助快速

+1

這裏是一個偉大的地方開始。 http://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/ –

回答

0

參數(篩選條件)必須是變量,並且使用動態查詢可能會有幫助。

下面的一個參數(過濾條件)就是這個例子。

如果(@參數1不爲空) 然後 開始 DECLARE @var VARCHAR(最大)= '從表名選擇*,其中COLUMNNAME =' + @參數1 EXEC(@var) 端

如果(@ param1不爲空,@param2不爲空) then begin declare @var varchar(max)='select * from tablename where columnname1 ='+ @ param1 +'and columnname2 ='+ @ param2 exec( @var) end

必須根據您的要求進行必要的鑄造,並且@var變量的分配應根據參數動態更改。

+0

感謝您的回覆,在我的情況下,他們會發送過濾器值在列表中有多個角色,期望是我必須根據兩個角色進行篩選 – muthu

+0

@rolelist ='1,3' @ Userfilter ='1' 我有一個函數來分割這個值,以便我可以應用它們into where子句, 這裏只有角色3有usertype,但我必須返回角色1的用戶列表,以及列出用戶角色3中的用戶,用戶類型爲1, 我希望在某種優化查詢.... 展望更多REPLAYS – muthu

+0

好吧,你有一個功能來分割逗號分隔值。我不清楚你的評論的第二部分。這是否涉及參數的使用(過濾條件)? – Coder1991