BITAND 函数

BITAND 函数有两个参数。这些参数可为可转换为 INT8 值的任何数值类型值。

在位运算之前截断小数值。结果是两个参数的 AND。

如果两个参数有相同的整数类型,则返回值的数据类型与参数的类型相同。如果参数有不同的整数类型(例如,INT 和 INT8),则返回带有更高精度的数据类型。如果参数是任何其他数值类型,诸如 DECIMAL、SMALLFLOAT、FLOAT 或 MONEY,或那些类型的某种组合,则返回的数据类型为 DECIMAL(32)。

下列示例展示调用 BITAND 函数的查询:
select task_id, task_status,
          decode(bitand(task_status,1), 1, '   Y', '   N') as task_a,
          decode(bitand(task_status,2), 2, '   Y', '   N') as task_b,
          decode(bitand(task_status,4), 4, '   Y', '   N') as task_c
          from tasks;     
        
下表展示此 SELECT 语句的输出。
task_id task_status task_a task_b task_c
   100           1    Y      N      N        
            101           1    Y      N      N        
            102           2    N      Y      N        
            103           4    N      N      Y        
            104           6    N      Y      Y        
            105           3    Y      Y      N        
            106           5    Y      N      Y        
            107           7    Y      Y      Y