多种选择我已经尝试IIF,如果其他和案例似乎没有工作。如果@ShippedDate中存在值,则单独查询该值或查询其他值。在哪里条款
WHERE
(CASE WHEN @ShippedDate != NULL THEN date_shipped = @ShippedDate
ELSE
[order].order_date BETWEEN @StartDate AND @EndDate
AND program_types.id IN (@ProgTypes)
AND employee.id IN (@RepNames)
END
ORDER BY OrderID
Case是一个表达式,它用于返回列的值。你不能像这样使用来有条件地换出其他谓词。没有什么东西等于NULL,就像什么都不等于NULL一样。 –
'id IN(@ProgTypes)'?这在SQL Server中甚至可能吗? “@ ProgTypes”是某种数组变量吗? –
@ThorstenKettner确信只要它只包含一个值就可以。 ;)但我怀疑他们没有这样做。 –