SSRS 2011 SQL where with case when
我在ssrs中有一个布尔参数 如何编写查询以实现以下目标: 布尔参数@isMultiple(值为真或假) SQL查询是: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,但可以使用或。试试像这样
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是返回单个值的表达式,而不是可用于控制流的语句。阅读