有没有办法写这个更简单?
WHERE
(
(@IdAgent IS NULL AND IdAgent IS NULL)
OR
(@IdAgent IS NOT NULL AND IdAgent = @IdAgent)
)
有没有办法写这个更简单?
WHERE
(
(@IdAgent IS NULL AND IdAgent IS NULL)
OR
(@IdAgent IS NOT NULL AND IdAgent = @IdAgent)
)
您可以轻松删除一个测试,因为它=
永远不会匹配 aNULL
和非NULL
值:
WHERE
(@IdAgent IS NULL AND IdAgent IS NULL)
OR
IdAgent = @IdAgent
您可以尝试使用此答案中的方法,当应用于您的情况时,它看起来像这样:
WHERE EXISTS (SELECT IdAgent
INTERSECT
SELECT @IdAgent)
您可能需要在您的特定环境中测试它的性能,看看它的运行速度是否比您当前的解决方案慢很多。