PostgreSQL bit_or() 函数使用指南

PostgreSQL bit_or() 函数是一个聚合函数,它对所有的非 null 输入值执行"按位或"运算。

按位或处理两个长度相同的二进制数,两个相应的二进位都为 0,该位的结果值为 0,否则为 1。

bit_or() 语法

这里是 PostgreSQL bit_or() 的语法:

bit_or(expr)

我们通常在 SQLite 中按如下方式使用 bit_or() 函数:

SELECT bit_or(expr), ...
FROM table_name
[WHERE ...]
[GROUP BY group_expr1, group_expr2, ...];

参数

expr
必需的。一个列名或者表达式。它接受一个整数或者 bit 类型的值。

返回值

PostgreSQL bit_or() 函数返回值的类型与输入参数的类型相同,它返回 对所有的非 null 输入值执行"按位或"运算的结果。

注意,bit_or() 函数只处理那些非 null 的值。也就是说, null 值会被 bit_or() 函数忽略。

bit_or() 示例

为了演示 PostgreSQL bit_or() 的用法,我们使用以下 UNIONSELECT 语句模拟一个表:

SELECT 4 x
UNION
SELECT 5 x
UNION
SELECT 6 x;
 x
---
 4
 6
 5
(3 rows)

下面的语句对 x 列执行了 bit_or() 运算:

SELECT bit_or(x)
FROM (
    SELECT 4 x
    UNION
    SELECT 5 x
    UNION
    SELECT 6 x
  ) t;
 bit_or
--------
      7
(1 rows)

这里, bit_or() 函数对 x 列中的值(456)进行了 “按位或” 运算,运算步骤如下:

      4 -> 100
      5 -> 101
      6 -> 110
bit_or() = 111 = 7

所以 bit_or() 函数 返回了 7