BITAND 函数有两个参数。这些参数可为可转换为 INT8 值的任何数值类型值。
在位运算之前截断小数值。结果是两个参数的 AND。
如果两个参数有相同的整数类型,则返回值的数据类型与参数的类型相同。如果参数有不同的整数类型(例如,INT 和 INT8),则返回带有更高精度的数据类型。如果参数是任何其他数值类型,诸如 DECIMAL、SMALLFLOAT、FLOAT 或 MONEY,或那些类型的某种组合,则返回的数据类型为 DECIMAL(32)。
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;
| 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
|