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