很难谷歌这一个,忍受我...寻找更罕见的语法。有这样的查询:
SELECT x
FROM foo
WHERE foo.y = (foo.a = 3 AND foo.b = 5)
基本上parens中的表达式求值为布尔值,我想知道是否可以使用它来查找y列(存储布尔值)。这种语法可能是错误的,有人知道是否存在这样的东西吗?
您可以像这样使用CASE
表达式:
SELECT x
from foo
where foo.y = (CASE WHEN (foo.a = 3 AND foo.b = 5) THEN 1 ELSE 0 END)
您可以使用SQL Server
使用IFF(),如下所示:
select x
from foo
where foo.y = (select iif(foo.a=3 and foo.b=5,0,1));