我想检查布尔值是否为真,然后在 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++ 中一样,您可以执行 if !(条件)。
如果不是,解决这个问题的最佳方法是什么?
谢谢你!
SQL 相当于!
在C中是NOT
。但是,在您的情况下,您想要其他东西:您需要建立一个条件,根据以下值在两个选择之间做出决定@checkbool
, 像这样:
SELECT *
FROM TableA A
WHERE ( (@checkbool) AND (A.Id = 123))
OR ((NOT @checkbool) AND (A.Id <> 123))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)