当前位置:  开发笔记 > 编程语言 > 正文

存储过程位参数激活附加where子句以检查null

如何解决《存储过程位参数激活附加where子句以检查null》经验,为你挑选了1个好方法。

我有一个存储过程,如下所示:

CREATE PROCEDURE dbo.usp_TestFilter
  @AdditionalFilter BIT = 1
AS
  SELECT *
  FROM dbo.SomeTable T
  WHERE
    T.Column1 IS NOT NULL
    AND CASE WHEN @AdditionalFilter = 1 THEN
      T.Column2 IS NOT NULL

不用说,这不起作用.如何激活检查@AdditionalFilter参数的附加where子句?谢谢你的帮助.



1> Johan..:
CREATE PROCEDURE dbo.usp_TestFilter
  @AdditionalFilter BIT = 1
AS
  SELECT *
  FROM dbo.SomeTable T
  WHERE
    T.Column1 IS NOT NULL
    AND (@AdditionalFilter = 0 OR
      T.Column2 IS NOT NULL)

如果@AdditionalFilter为0,则不会评估该列,因为它不会影响括号之间部分的结果.如果它不是0,则将评估列条件.

推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有