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
反馈
您对此页面有任何反馈吗? 我们很乐意听取您的意见!