我想检查布尔值是否为真,然后在WHERE子句中确定要使用的条件。
假设布尔变量是@checkbool:
SELECT * FROM TableA A WHERE --if @checkbool is true, run this A.Id = 123 --if @checkbool is false, run this A.Id <> 123
有否否定条件的方法?像在C ++中一样,您可以执行!(condition)。
如果不是,解决此问题的最佳方法是什么?
谢谢!
SQL!在C中的等效项是NOT。但是,在您的情况下,您还需要其他东西:您需要建立一个条件,该条件根据的值在两个选择之间做出决定@checkbool,如下所示:
!
NOT
@checkbool
SELECT * FROM TableA A WHERE ( (@checkbool) AND (A.Id = 123)) OR ((NOT @checkbool) AND (A.Id <> 123))