我无法在我的 where 子句中获取我的 case 语句来使用参数

I can't get my case statement in my where clause to work with a parameter

我正在制作一份报告,让我可以查看有关我是否已支付运费的信息。

SELECT...
FROM...
WHERE CASE 
      WHEN @Billed = 1 THEN Freight > 0
      WHEN @Billed = 0 THEN Freight = 0
      ELSE Freight >= 0 END

CASE 表达式(即 THENELSE 之后的谓词)必须是文字值,不能是另一个逻辑表达式。您可以将您的 CASE 逻辑改写如下:

SELECT ...
FROM ...
WHERE
    (@Billed = 1 AND Freight > 0) OR
    (@Billed = 0 AND Freight = 0) OR
    Freight >= 0;