BOOL_AND
适用于 ✅ 开源版 ✅ 专业版 ✅ 企业版
BOOL_AND() 聚合函数计算聚合组中所有布尔值的布尔合取。换句话说,如果
-
对于组中的每一行,参数都是
TRUE,则结果为TRUE。 -
如果至少有一行参数为
FALSE,则结果为FALSE。
与大多数聚合函数一样,NULL 值不参与聚合,因此三值逻辑不适用于此。
SELECT bool_and(ID < 4), bool_and(ID < 5) FROM BOOK
create.select(
boolAnd(BOOK.ID.lt(4)),
boolAnd(BOOK.ID.lt(5)))
.from(BOOK)
产生
+----------+----------+ | bool_and | bool_and | +----------+----------+ | false | true | +----------+----------+
方言支持
此示例使用 jOOQ
boolAnd(BOOK.ID.lt(4))
翻译成以下特定方言的表达式
访问
(min( SWITCH(BOOK.ID < 4, 1, TRUE, 0) ) = 1)
ASE, DB2, Firebird, SQLDataWarehouse, SQLServer, Sybase, Teradata
CASE
WHEN min(
CASE
WHEN BOOK.ID < 4 THEN 1
ELSE 0
END
) = 1 THEN 1
WHEN NOT (min(
CASE
WHEN BOOK.ID < 4 THEN 1
ELSE 0
END
) = 1) THEN 0
END
Aurora MySQL, ClickHouse, Derby, H2, HSQLDB, MariaDB, MemSQL, MySQL, Oracle, Redshift, SQLite
(min(
CASE
WHEN BOOK.ID < 4 THEN 1
ELSE 0
END
) = 1)
Aurora Postgres, CockroachDB, Databricks, DuckDB, Postgres, Trino, Vertica, YugabyteDB
bool_and((BOOK.ID < 4))
BigQuery
logical_and((BOOK.ID < 4))
Exasol
every((BOOK.ID < 4))
Hana
CASE
WHEN min(
CASE
WHEN BOOK.ID < 4 THEN 1
ELSE 0
END
) = 1 THEN TRUE
WHEN NOT (min(
CASE
WHEN BOOK.ID < 4 THEN 1
ELSE 0
END
) = 1) THEN FALSE
END
Informix
CASE
WHEN min(
CASE
WHEN BOOK.ID < 4 THEN 1
ELSE 0
END
) = 1 THEN CAST('t' AS boolean)
WHEN NOT (min(
CASE
WHEN BOOK.ID < 4 THEN 1
ELSE 0
END
) = 1) THEN CAST('f' AS boolean)
END
Snowflake
booland_agg((BOOK.ID < 4))
使用 jOOQ 3.21 生成。早期 jOOQ 版本的支持可能有所不同。 在我们的网站上翻译您自己的 SQL
反馈
您对此页面有任何反馈吗? 我们很乐意听取您的意见!