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 |