Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.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
SSRS 2011 SQL where with case when_Sql_Sql Server_Reporting Services_Ssrs 2008 - Fatal编程技术网

SSRS 2011 SQL where with case when

SSRS 2011 SQL where with case when,sql,sql-server,reporting-services,ssrs-2008,Sql,Sql Server,Reporting Services,Ssrs 2008,我在ssrs中有一个布尔参数 如何编写查询以实现以下目标: 布尔参数@isMultiple(值为真或假) SQL查询是: Select employee from employeeTable WHERE CASE @isMultiple WHEN 'True' then employeeID in(@EmployeeIDSelected) WHEN 'False' then EmployeeID=@EmployeeID END 谢谢您不能在WHERE中使用CASE,但可以使用或。试试像这样

我在ssrs中有一个布尔参数

如何编写查询以实现以下目标:

布尔参数@isMultiple(值为真或假)

SQL查询是:

Select employee from employeeTable
WHERE 
CASE @isMultiple 
WHEN 'True' then employeeID in(@EmployeeIDSelected)
WHEN 'False' then EmployeeID=@EmployeeID
END

谢谢

您不能在
WHERE
中使用
CASE
,但可以使用
。试试像这样的东西

SELECT employee
FROM employeeTable
WHERE (@isMultiple = 'True' AND employeeID IN (@EmployeeIDSelected))
   OR (@isMultiple = 'False' AND EmployeeID = @EmployeeID)

不能在
WHERE
中使用
大小写
,但可以使用
。试试像这样的东西

SELECT employee
FROM employeeTable
WHERE (@isMultiple = 'True' AND employeeID IN (@EmployeeIDSelected))
   OR (@isMultiple = 'False' AND EmployeeID = @EmployeeID)

不能在
WHERE
中使用
大小写
,但可以使用
。试试像这样的东西

SELECT employee
FROM employeeTable
WHERE (@isMultiple = 'True' AND employeeID IN (@EmployeeIDSelected))
   OR (@isMultiple = 'False' AND EmployeeID = @EmployeeID)

不能在
WHERE
中使用
大小写
,但可以使用
。试试像这样的东西

SELECT employee
FROM employeeTable
WHERE (@isMultiple = 'True' AND employeeID IN (@EmployeeIDSelected))
   OR (@isMultiple = 'False' AND EmployeeID = @EmployeeID)

如果您仍然希望使用用例,可以执行以下操作:

Select employee from employeeTable
WHERE 1 = 
(CASE @isMultiple 
WHEN 'True' then (CASE WHEN employeeID in(@EmployeeIDSelected) THEN 1 END)
WHEN 'False' then (CASE WHEN EmployeeID=@EmployeeID THEN 1 END)
END)

不过,在决定是否值得之前,您可能需要检查查询计划

如果您仍然想使用用例,您可以这样做:

Select employee from employeeTable
WHERE 1 = 
(CASE @isMultiple 
WHEN 'True' then (CASE WHEN employeeID in(@EmployeeIDSelected) THEN 1 END)
WHEN 'False' then (CASE WHEN EmployeeID=@EmployeeID THEN 1 END)
END)

不过,在决定是否值得之前,您可能需要检查查询计划

如果您仍然想使用用例,您可以这样做:

Select employee from employeeTable
WHERE 1 = 
(CASE @isMultiple 
WHEN 'True' then (CASE WHEN employeeID in(@EmployeeIDSelected) THEN 1 END)
WHEN 'False' then (CASE WHEN EmployeeID=@EmployeeID THEN 1 END)
END)

不过,在决定是否值得之前,您可能需要检查查询计划

如果您仍然想使用用例,您可以这样做:

Select employee from employeeTable
WHERE 1 = 
(CASE @isMultiple 
WHEN 'True' then (CASE WHEN employeeID in(@EmployeeIDSelected) THEN 1 END)
WHEN 'False' then (CASE WHEN EmployeeID=@EmployeeID THEN 1 END)
END)

不过,在决定是否值得之前,您可能需要检查查询计划

Case是返回单个值的表达式,而不是可用于控制流的语句。Case是返回单个值的表达式,而不是可用于控制流的语句。Case是返回单个值的表达式,而不是可用于控制流的语句。Case是返回单个值的表达式,而不是可用于控制流的语句。阅读