Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL存储过程,应用where子句_Sql Server_Where Clause - Fatal编程技术网

Sql server SQL存储过程,应用where子句

Sql server SQL存储过程,应用where子句,sql-server,where-clause,Sql Server,Where Clause,1) 在SQLServer中,我有一个存储过程,它有多个表的连接。 2) 其中有UserMaster、RoleMaster和UserType表 3) 角色主管将扮演以下角色:劳力士、劳力士和劳力士 4) 在User type master中,我们只有RoleZ的用户类型值,如Type1和Type2(根据要求) 5) 现在在用户表中,我有n个用户,他们与上述任何一个角色关联,并且仅对于RoleZ,他们可以与任何一个用户类型关联 问题: 现在,在GUI中,我将获得具有角色和用户类型的用户筛选器,他们

1) 在SQLServer中,我有一个存储过程,它有多个表的连接。 2) 其中有UserMaster、RoleMaster和UserType表 3) 角色主管将扮演以下角色:劳力士、劳力士和劳力士 4) 在User type master中,我们只有RoleZ的用户类型值,如Type1和Type2(根据要求) 5) 现在在用户表中,我有n个用户,他们与上述任何一个角色关联,并且仅对于RoleZ,他们可以与任何一个用户类型关联

问题: 现在,在GUI中,我将获得具有角色和用户类型的用户筛选器,他们将发送多个角色作为筛选器,如果他们为RoleZ应用筛选器,那么只有他们将提供usertype筛选器,我如何编写查询以获取此场景的记录

请尽快提供帮助

参数(过滤条件)必须是变量,使用动态查询可能会有所帮助

下面是一个参数(过滤条件)的示例

如果(@param1不为空) 然后 开始 声明@var varchar(max)='从tablename中选择*,其中columnname='+@param1 exec(@var) 结束

如果(@param1不为null,@param2不为null) 然后 开始 声明@var varchar(max)='从tablename中选择*,其中columnname1='+@param1+'和columnname2='+@param2' exec(@var) 结束


应根据您的要求进行必要的转换,@var变量的分配应根据参数动态变化。

您可以检查是否。。否则,将在存储过程中保持简单

If(@usertype is not null)
Begin
//query for user type

Else
//query for role only
End
这可以让你开始


这里是一个很好的起点。感谢您的回复,在我的情况下,在筛选值中,他们将在列表中发送多个角色,期望我必须基于这两个角色进行筛选roles@rolelist='1,3'@Userfilter='1'我在这里有一个函数来分割这些值,以便我可以将它们应用到where in子句中,这里只有角色3具有用户类型,但是我必须返回角色为1的用户列表,以及角色为3的用户列表,用户类型为1,我希望在某种优化查询中使用这些。。。。期待更多的重播OK您有一个分割逗号分隔值的函数。我不清楚你评论的第二部分。这是指参数(过滤条件)的使用吗?再次感谢您的时间,角色3只有用户类型,但我需要获得两个角色的用户列表。我如何才能获得该列表?因此角色1没有用户类型(Null/空白)?您也想检索角色1的用户类型。是吗?我不想在if-else条件下复制粘贴相同的代码