我正在尝试CASE WHEN
在 SQL 子句中添加以下语句WHERE
,但 SQL Server 不允许我这样做。使用的所有列都是相同的,Data Types
但仍然给我错误,任何人都可以检查并建议它为什么不起作用?
WHERE supplierAccountDetail.SupplierMasterID IN (
CASE
WHEN @SupplierMasterID IS NOT NULL
THEN @SupplierMasterID
ELSE (sales.ParentSupplierMasterID
,sales.DivisionSupplierMasterID) //Error - Syntax Error
END
)
如果要保留
CASE WHEN
语句,则必须为CASE WHEN
语句中的每列/值指定一个新IN()
语句。例子:
这确实意味着您会将列与变量进行两次比较。
或者,您可以将查询更改为Akina在评论中提到的内容: