Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql where子句中的子查询_Sql_Subquery_Correlated Subquery - Fatal编程技术网

Sql where子句中的子查询

Sql where子句中的子查询,sql,subquery,correlated-subquery,Sql,Subquery,Correlated Subquery,很难谷歌这一个,忍受我…寻找更罕见的语法。是否有这样的查询: SELECT x FROM foo WHERE foo.y = (foo.a = 3 AND foo.b = 5) SELECT x from foo where foo.y = (CASE WHEN (foo.a = 3 AND foo.b = 5) THEN 1 ELSE 0 END) 基本上,parens中的表达式的计算结果是布尔值,我想知道这是否可以用于查找y列(存储布尔值)。 此语法可能是错误的,有人知道是否存在类似

很难谷歌这一个,忍受我…寻找更罕见的语法。是否有这样的查询:

SELECT x
FROM foo 
WHERE foo.y = (foo.a = 3 AND foo.b = 5)
SELECT x
from foo 
where foo.y = (CASE WHEN (foo.a = 3 AND foo.b = 5) THEN 1 ELSE 0 END)
基本上,parens中的表达式的计算结果是布尔值,我想知道这是否可以用于查找y列(存储布尔值)。
此语法可能是错误的,有人知道是否存在类似的内容吗?

您可以使用如下表达式:

SELECT x
FROM foo 
WHERE foo.y = (foo.a = 3 AND foo.b = 5)
SELECT x
from foo 
where foo.y = (CASE WHEN (foo.a = 3 AND foo.b = 5) THEN 1 ELSE 0 END)
您可以使用IFF(),使用
SQL Server
,如下所示:


select x 
from foo
where foo.y = (select iif(foo.a=3 and foo.b=5,0,1));

Hi@rakim,如果你能发布你的表结构和一些示例数据,也许人们能更好地了解你的要求。你使用的是哪种DBMS?如果
foo.y
确实是一个布尔列,那么你的表达式就是有效的SQL,请参见此处:-但是,只有少数DBMS系统支持正确的布尔数据类型它适用于SQL Server如果
foo.y
确实是
boolean
则不需要大小写表达式
foo.y=(foo.a=3和foo.b=5)
可以正常工作。