我在这里阅读了有关在 WHERE 子句中使用 CASE 表达式的信息:
http://scottelkin.com/sql/using-a-case-statement-in-a-sql-where-clause/
我正在尝试使用它来过滤我的 select 语句中的结果,基于将由用户应用程序传入的合同号。无论传入什么,我的代码当前都会引发“无效参数”错误。我验证 SELECT/FROM 工作正常,就像没有 CASE 表达式的 WHERE 子句一样。这是我的代码。
WHERE (CASE WHEN @ContractNo = 0 THEN @ContractNo ELSE @ContractNo END =
tblContracts.ContractNo)
代码的冗余是出于故障排除的目的,我计划稍后在 CASE 上使用通配符过滤。我现在专注于降低语法。我相信这应该返回参数与存储在表中的合同编号匹配的所有记录。任何帮助或建议将不胜感激。