BIT_NAND_AGG
适用于 ✅ 开源版 ✅ 专业版 ✅ 企业版
一个聚合函数,用于对数据集执行与 BIT_NAND 函数等效的操作。 换句话说,结果位是
-
如果组中每一行的参数在位置
p
处为1
,则在位置p
处为0
。 -
如果组中至少一行的参数在位置
p
处为0
,则在位置p
处为1
。
与大多数聚合函数一样,NULL
值不进行聚合。
SELECT bit_nand_agg(ID), bit_nand_agg(AUTHOR_ID) FROM BOOK
create.select( bitNandAgg(BOOK.ID), bitNandAgg(BOOK.AUTHOR_ID)) .from(BOOK)
产生
+--------------+--------------+ | bit_nand_agg | bit_nand_agg | +--------------+--------------+ | -1 | -1 | +--------------+--------------+
方言支持
此示例使用 jOOQ
bitNandAgg(BOOK.ID.coerce(TINYINT))
翻译成以下特定方言的表达式
ASE, MemSQL, SQLDataWarehouse, SQLServer, SQLite
~((CASE min( CASE (BOOK.ID & 1) WHEN 0 THEN 0 WHEN 1 THEN 1 END ) WHEN 1 THEN 1 WHEN 0 THEN 0 END + CASE min( CASE (BOOK.ID & 2) WHEN 0 THEN 0 WHEN 2 THEN 2 END ) WHEN 2 THEN 2 WHEN 0 THEN 0 END + CASE min( CASE (BOOK.ID & 4) WHEN 0 THEN 0 WHEN 4 THEN 4 END ) WHEN 4 THEN 4 WHEN 0 THEN 0 END + CASE min( CASE (BOOK.ID & 8) WHEN 0 THEN 0 WHEN 8 THEN 8 END ) WHEN 8 THEN 8 WHEN 0 THEN 0 END + CASE min( CASE (BOOK.ID & 16) WHEN 0 THEN 0 WHEN 16 THEN 16 END ) WHEN 16 THEN 16 WHEN 0 THEN 0 END + CASE min( CASE (BOOK.ID & 32) WHEN 0 THEN 0 WHEN 32 THEN 32 END ) WHEN 32 THEN 32 WHEN 0 THEN 0 END + CASE min( CASE (BOOK.ID & 64) WHEN 0 THEN 0 WHEN 64 THEN 64 END ) WHEN 64 THEN 64 WHEN 0 THEN 0 END + CASE min( CASE (BOOK.ID & -128) WHEN 0 THEN 0 WHEN -128 THEN -128 END ) WHEN -128 THEN -128 WHEN 0 THEN 0 END))
Aurora MySQL, Aurora Postgres
~(bit_and_agg(BOOK.ID))
BigQuery, CockroachDB, Databricks, DuckDB, MariaDB, MySQL, Postgres, Redshift, Sybase, YugabyteDB
~(bit_and(BOOK.ID))
ClickHouse
bitNot(groupBitAnd(BOOK.ID))
DB2, Hana, Informix, Teradata
bitnot((CASE min( CASE bitand( BOOK.ID, 1 ) WHEN 0 THEN 0 WHEN 1 THEN 1 END ) WHEN 1 THEN 1 WHEN 0 THEN 0 END + CASE min( CASE bitand( BOOK.ID, 2 ) WHEN 0 THEN 0 WHEN 2 THEN 2 END ) WHEN 2 THEN 2 WHEN 0 THEN 0 END + CASE min( CASE bitand( BOOK.ID, 4 ) WHEN 0 THEN 0 WHEN 4 THEN 4 END ) WHEN 4 THEN 4 WHEN 0 THEN 0 END + CASE min( CASE bitand( BOOK.ID, 8 ) WHEN 0 THEN 0 WHEN 8 THEN 8 END ) WHEN 8 THEN 8 WHEN 0 THEN 0 END + CASE min( CASE bitand( BOOK.ID, 16 ) WHEN 0 THEN 0 WHEN 16 THEN 16 END ) WHEN 16 THEN 16 WHEN 0 THEN 0 END + CASE min( CASE bitand( BOOK.ID, 32 ) WHEN 0 THEN 0 WHEN 32 THEN 32 END ) WHEN 32 THEN 32 WHEN 0 THEN 0 END + CASE min( CASE bitand( BOOK.ID, 64 ) WHEN 0 THEN 0 WHEN 64 THEN 64 END ) WHEN 64 THEN 64 WHEN 0 THEN 0 END + CASE min( CASE bitand( BOOK.ID, -128 ) WHEN 0 THEN 0 WHEN -128 THEN -128 END ) WHEN -128 THEN -128 WHEN 0 THEN 0 END))
Exasol
bit_not((CASE min( CASE bit_and( BOOK.ID, 1 ) WHEN 0 THEN 0 WHEN 1 THEN 1 END ) WHEN 1 THEN 1 WHEN 0 THEN 0 END + CASE min( CASE bit_and( BOOK.ID, 2 ) WHEN 0 THEN 0 WHEN 2 THEN 2 END ) WHEN 2 THEN 2 WHEN 0 THEN 0 END + CASE min( CASE bit_and( BOOK.ID, 4 ) WHEN 0 THEN 0 WHEN 4 THEN 4 END ) WHEN 4 THEN 4 WHEN 0 THEN 0 END + CASE min( CASE bit_and( BOOK.ID, 8 ) WHEN 0 THEN 0 WHEN 8 THEN 8 END ) WHEN 8 THEN 8 WHEN 0 THEN 0 END + CASE min( CASE bit_and( BOOK.ID, 16 ) WHEN 0 THEN 0 WHEN 16 THEN 16 END ) WHEN 16 THEN 16 WHEN 0 THEN 0 END + CASE min( CASE bit_and( BOOK.ID, 32 ) WHEN 0 THEN 0 WHEN 32 THEN 32 END ) WHEN 32 THEN 32 WHEN 0 THEN 0 END + CASE min( CASE bit_and( BOOK.ID, 64 ) WHEN 0 THEN 0 WHEN 64 THEN 64 END ) WHEN 64 THEN 64 WHEN 0 THEN 0 END + CASE min( CASE bit_and( BOOK.ID, -128 ) WHEN 0 THEN 0 WHEN -128 THEN -128 END ) WHEN -128 THEN -128 WHEN 0 THEN 0 END))
Firebird
bin_not((CASE min( CASE bin_and( BOOK.ID, 1 ) WHEN 0 THEN 0 WHEN 1 THEN 1 END ) WHEN 1 THEN 1 WHEN 0 THEN 0 END + CASE min( CASE bin_and( BOOK.ID, 2 ) WHEN 0 THEN 0 WHEN 2 THEN 2 END ) WHEN 2 THEN 2 WHEN 0 THEN 0 END + CASE min( CASE bin_and( BOOK.ID, 4 ) WHEN 0 THEN 0 WHEN 4 THEN 4 END ) WHEN 4 THEN 4 WHEN 0 THEN 0 END + CASE min( CASE bin_and( BOOK.ID, 8 ) WHEN 0 THEN 0 WHEN 8 THEN 8 END ) WHEN 8 THEN 8 WHEN 0 THEN 0 END + CASE min( CASE bin_and( BOOK.ID, 16 ) WHEN 0 THEN 0 WHEN 16 THEN 16 END ) WHEN 16 THEN 16 WHEN 0 THEN 0 END + CASE min( CASE bin_and( BOOK.ID, 32 ) WHEN 0 THEN 0 WHEN 32 THEN 32 END ) WHEN 32 THEN 32 WHEN 0 THEN 0 END + CASE min( CASE bin_and( BOOK.ID, 64 ) WHEN 0 THEN 0 WHEN 64 THEN 64 END ) WHEN 64 THEN 64 WHEN 0 THEN 0 END + CASE min( CASE bin_and( BOOK.ID, -128 ) WHEN 0 THEN 0 WHEN -128 THEN -128 END ) WHEN -128 THEN -128 WHEN 0 THEN 0 END))
H2
bit_nand_agg(BOOK.ID)
HSQLDB
((0 - (CASE min( CASE bitand( BOOK.ID, 1 ) WHEN 0 THEN 0 WHEN 1 THEN 1 END ) WHEN 1 THEN 1 WHEN 0 THEN 0 END + CASE min( CASE bitand( BOOK.ID, 2 ) WHEN 0 THEN 0 WHEN 2 THEN 2 END ) WHEN 2 THEN 2 WHEN 0 THEN 0 END + CASE min( CASE bitand( BOOK.ID, 4 ) WHEN 0 THEN 0 WHEN 4 THEN 4 END ) WHEN 4 THEN 4 WHEN 0 THEN 0 END + CASE min( CASE bitand( BOOK.ID, 8 ) WHEN 0 THEN 0 WHEN 8 THEN 8 END ) WHEN 8 THEN 8 WHEN 0 THEN 0 END + CASE min( CASE bitand( BOOK.ID, 16 ) WHEN 0 THEN 0 WHEN 16 THEN 16 END ) WHEN 16 THEN 16 WHEN 0 THEN 0 END + CASE min( CASE bitand( BOOK.ID, 32 ) WHEN 0 THEN 0 WHEN 32 THEN 32 END ) WHEN 32 THEN 32 WHEN 0 THEN 0 END + CASE min( CASE bitand( BOOK.ID, 64 ) WHEN 0 THEN 0 WHEN 64 THEN 64 END ) WHEN 64 THEN 64 WHEN 0 THEN 0 END + CASE min( CASE bitand( BOOK.ID, -128 ) WHEN 0 THEN 0 WHEN -128 THEN -128 END ) WHEN -128 THEN -128 WHEN 0 THEN 0 END)) - 1)
Oracle
((0 - bit_and_agg(BOOK.ID)) - 1)
Snowflake
bitnot(bit_and_agg(BOOK.ID))
Trino
bitwise_not(bitwise_and_agg(BOOK.ID))
Vertica
~(hex_to_integer(to_hex(bit_and(hex_to_binary(to_hex(BOOK.ID))))))
Access, Derby
/* UNSUPPORTED */
使用 jOOQ 3.21 生成。早期 jOOQ 版本的支持可能有所不同。 在我们的网站上翻译您自己的 SQL
反馈
您对此页面有任何反馈吗? 我们很乐意听到您的反馈!