2017-04-05 142 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